问题标签 [jpype]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1014 浏览

python - 找不到类 .jar 文件未在 Python 中加载

我无法为我的 python 代码加载 .jar 文件,这是我的 default.py 代码

这是我的init .py代码

当我尝试运行上面的代码时,我得到了错误

“引发_RUNTIMEEXCEPTION.PYEXC(“找不到类%s”%名称)jpype._jexception.ExceptionPyRaisable:java.lang.Exception:找不到类com.aspose.cells.Workbook”

我无法弄清楚为什么会发生此错误。我仔细检查了 .jar 文件的路径。

0 投票
1 回答
1704 浏览

python-2.7 - jpype._jexception.ExceptionPyRaisable:java.lang.Exception:找不到类示例

我正在使用以下代码片段来调用 jar 文件中存在的函数。但我无法连接课程。

Java 代码:

C:\temp\tem\samp.jar Jar 文件存在于该目录中。我正在使用以下代码连接 jar 文件。

蟒蛇代码:

通过运行上面的代码,我收到以下错误

回溯(最近一次调用最后一次):文件“”,第 1 行,在文件“C:\Python27\lib\site-packages\jpype_jclass.py”中,第 54 行,在 JClass raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found " % name) jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Class Samp not found

0 投票
0 回答
103 浏览

python - 通过 JPype 在 Django 中使用 PayPal 经典 SDK

我想使用 PayPal API 发送自动付款。据我所知,目前只有两种方法可以做到:

  1. 使用现代 REST API的支付端点
  2. 使用“经典”API中的自适应支付

首选选项是选项 1,因为已经有可用于 Python 的官方 SDK,遗憾的是,此功能似乎仅在美国可用,文档指出:

美国的商家可以注册以在 Live 环境中使用 Payouts,如以下步骤所述。其他商户应联系其客户经理或客户服务以启用付款。

所以似乎有一些额外的步骤来启用支付,但他们对此非常不透明,也没有提供太多信息,我不清楚它是否真的可用。(我已经联系了他们的技术支持以获取帮助,我正在等待他们的回复,我只是在这里问这个作为备用计划)。

如果我想在 Python 上使用自适应支付,更具体地说是在 Django 上,我有 3 个选项:

  1. 围绕官方 SDK 实现一个小型 Java 包装器,并使用 JPype 通过 Python 调用它
  2. 实现一个小型 Java 包装器并通过命令行调用它,或者将其作为服务运行并从服务器内部调用它。
  3. 自己用 Python 实现所需的 PayPal SDK 子集。

选项 3 是最复杂的,但可能是最有效的,但是由于它不会得到官方支持,因此维护它可能会成为问题。选项 2 似乎很容易实现,但是由于 JVM 的内存开销无论如何都会存在,也许最好通过 JPype 进行接口,这是这个问题的重点。

问题详情在这里:

很抱歉介绍得太大了,它最终比预期的要大得多,现在进入重点。

如果我用 JPype 在 Django 中启动 JVM。这是否意味着每个请求(每个请求都有一个线程,这就是 Web 服务器的工作方式)将启动它自己的 JVM?这是一个好方法吗?

0 投票
1 回答
4132 浏览

java - 在 Python 中实际使用 Java 类/JAR?

我花了很多时间寻找这个并探索了许多解决方案。

这与这个线程有关。 从 Python 调用 Java

最后,经过测试:

Pyjnius:无法在 Windows 中安装。

Py4J:可以安装在windows上,但是使用Gateway有点重。

JPype: Python 3 安装在 5 分钟内,可以毫无问题地加载 50Mo JAR。好消息是语法与 Python 语法完全合并... https://github.com/tcalmant/jpype-py3

只是想知道,是否有人在 Python 中开发了真实世界的 Java 包装应用程序(即在生产服务器上运行)和大尺寸 JAR?

0 投票
1 回答
7673 浏览

python - 导入 jpype 模块时出错

有人可以建议解决以下错误吗?Python 3.5.1 / jpype1-py3 0.5.5.2 安装在 64 位 Windows 机器上。我在 Lib 或 Lib/site-packages 的任何地方都找不到 _jtype。

问候史蒂夫

0 投票
0 回答
687 浏览

python - jpype 无法为 JVM 保留足够的空间,而有足够的 RAM 可用

我目前正在做一个项目,我需要从 Python 代码中调用一个相当大的 jar 文件。为此,我使用 jpype 和一个较小的存根 jar,代码运行良好。但是,较大的 jar 需要大量内存,因此我设置-Xmx了传递给startJVM调用的参数。could not reserve enough space for object heap error但是,这会在 Python 中使用 a 崩溃。

我使用的值-Xmx是 1099m,如果我将此值减一并使用 1098m,则可以保留足够的内存并启动 JVM。但是,要成功使用 Jar,我需要 1098 以上。

调用startJVM时我的机器上有足够的内存可用,通常至少有 3GB。此外,如果我直接从命令行运行 jar,java -Xmx2000m -jar那么它会毫无问题地启动。这让我相信我可能做错了什么。

我正在使用 Python 2.7 32 位和 32 位 Java 8 JDK 在 64 位 Windows 安装上运行代码。以下行是我用来从 Python 启动 JVM 的行:

有谁知道使用 jpype 启动 JVM 且堆空间超过 1089 MB 的可能解决方案?

0 投票
1 回答
904 浏览

java - 如何在 Jpype Python 中转换对象

我有一个方法,它需要:“java.io.Reader”作为参数 java.io.Reader 是一个接口,不能被实例化。

所以,我使用这样的一个子类: StringReader= jp.java.io.StringReader("teststring")

如何将 StringReader 转换为 java.io.Reader 类型?

因为该方法不能隐式执行。

编辑:我在使用该方法时收到此错误消息:

方法详情:public static UserDictionary open(Reader reader) throws IOException

我收到了这个错误:

userDicC= java.jp.JClass('org.apache.lucene.analysis.ja.dict.UserDictionary') useDic= userDicC(StringReader)

0 投票
2 回答
1369 浏览

java - Jpype 在将 Py Dict 传递给 Java 中的 Map Obj 时没有匹配的重载

我正在使用 Jpype 在 Python 和 java 之间进行接口

在将 Py Dict 传递给相应的 Java Map (java.util.Map) 对象时,我收到错误消息:未找到匹配的重载。在 native\common\jp_method.cpp:121

这是示例代码

..........python 代码 ....................

1.stuff = {'name': 'Zed'}

2.Obj.testMethodofJava(stuff);#其中obj是Java类的对象

..........python 代码 ....................

*********java代码**************************

public void testMethodofJava(HashMap userContextMap)

*********java代码**************************

请注意,我能够访问接受原始数据类型(如 int 和 string)的 java 类的所有其他成员函数

我尝试用 Object (Hashmap) 替换 HashMap 内容,但这也导致了同样的错误

在这种情况下请帮助我。

提前感谢

0 投票
2 回答
1269 浏览

python - JPype 1-0.6.1 在 Ubuntu 14.04.4 LTS Vagrant Box 上安装错误

我一直在寻找可能的解决方案,似乎已经用完了。我正在尝试安装 JPype,因为我需要它来安装这个锅炉管道包......

https://github.com/ptwobrussell/python-boilerpipe

...支持本教程https://github.com/ptwobrussell/Mining-the-Social-Web-2nd-Edition

...但我不断收到以下错误。我已经尝试安装从pypi下载的 .tar.gz和Github 存储库,但仍然出现错误。

供参考

我正在使用 Ubuntu 14.04.4 LTS Vagrant Box,在虚拟 python 2.7.11 环境中运行 Anaconda Python(因此输出开头的 (python2) )。我在这里仍然是一个新手,所以任何指针都将不胜感激。

错误输出

0 投票
0 回答
151 浏览

jpype - 执行 Jpype 文件

我正在尝试实现以下教程中给出的示例: 在此处输入链接描述

我一直在尝试执行这个程序。但是我被困在一个步骤是“然后将.class文件放在(current_directory)/org/wg3i/test/目录中。”。所以,当我制作一个Java文件时来自 BlueJ 我有 .class 文件,但是我不确定如何将该文件放在 (current_directory)/org/wg3i/test/ 目录中。此外,该目录的确切位置在哪里。

附加问题:

我正在尝试实现以下代码。

在以下链接中给出 在此处输入链接描述

但是,每当我尝试使用 javac 执行此 java 代码时,我都会收到一条错误消息,指出 package org.nlogo.headless.HeadlessWorkspace 不存在,并且还说第 4 行的 HeadlessWorkspace 不存在。

我知道我插入的链接是这样说的:
为了编译和运行它,NetLogo.jar 必须在你的类路径中。还必须存在包含其他所需库的 lib 目录。

但我不确定它到底要求我做什么。

另外,我在 Linux 中工作。