如何导入我在 jython 中创建的 java 类并调用方法
我创建了一个 java 类,它调用其他 java 类,然后打印到屏幕上。我正在尝试构建一个 python 接口,该接口调用我的 java 类,运行其中的一个方法,然后终止。我无法访问我的方法。我使用了“导入directory2.myClass.java(以及.jar和.class)”行,我从原始代码和.class文件中创建了.jar文件。这些似乎都不起作用。我设置sys.path.append 指向 java 文件所在的目录,我是否需要将 java 类文件转换为 python 模块?
I have made a java class that calls other java classes and then prints to a screen. i am trying to build a python interface that calls my java class, runs the one method within it, and terminates. i cannot get access to my method. i have used the line "import directory.directory2.myClass.java (and .jar and .class) i made the .jar file from both the raw code and from the .class file. none of these seem to be working. i set sys.path.append to point to the directory where the java files are. Do i need to convert my java class file to a python module? and if so how do i do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
Jython 支持加载 Java 类,就好像它们是 Python 模块一样。它在 sys.path 中的目录中搜索 .class 文件。
首先,确保您的 Java 类已使用
javac
进行编译。然后,执行
sys.path.append(d)
,其中d
是包含包的目录。因此,如果您的类在顶部显示package foo.bar;
,并且位于mydir/foo/bar/myclass.java
,那么您必须具有mydir< /code> 在
sys.path
中(不是mydir
的子目录之一)。最后,通过诸如
from foo.bar import myclass
之类的方式导入该类。 Python 和 Java 之间的名称必须匹配!您将执行“from [package] import [class]”。Jython supports loading Java classes as if they were Python modules. It searches the directories in
sys.path
for.class
files.First, make sure your Java class has already been compiled with
javac
.Then, do a
sys.path.append(d)
, whered
is the directory containing the package. So if your class sayspackage foo.bar;
at the top, and resides atmydir/foo/bar/myclass.java
, then you must havemydir
insys.path
(NOT one of the subdirs ofmydir
).Finally, import the class via something like
from foo.bar import myclass
. The names between must match up between Python and Java! You'll be doing "from [package] import [class]".你应该这样做:
You should do this: