如何导入我在 jython 中创建的 java 类并调用方法

发布于 2024-12-29 16:00:48 字数 251 浏览 0 评论 0原文

我创建了一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

错爱 2025-01-05 16:00:48

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), where d is the directory containing the package. So if your class says package foo.bar; at the top, and resides at mydir/foo/bar/myclass.java, then you must have mydir in sys.path (NOT one of the subdirs of mydir).

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]".

情话难免假 2025-01-05 16:00:48

你应该这样做:

from directory.directory2 import myClass
myObject = myClass()
myObject.myMethod()

You should do this:

from directory.directory2 import myClass
myObject = myClass()
myObject.myMethod()
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文