当前位置: 首页 > 面试题库 >

找不到JPype类

法玮
2023-03-14
问题内容

JPype是一个了不起的项目,因为我允许JVM直接从实例化一个Python

不幸的是,我陷入了第一步。

A.java有源代码( located in C:\tmp folder ):

class A {
    public A() {
        super();
    }
    public String sayHi() {
        return("Hello");
    }
}

使用以下命令将其编译为类: javac A.java

因此,A.class位于 C:\tmp 文件夹中。

我有以下Python源代码:

import os
import jpype
jpype.startJVM(jpype.getDefaultJVMPath(), '-ea', '-Djava.class.path=c:\\tmp')
A = jpype.JClass("A")
a = A()
print a.sayHi()
jpype.shutdownJVM()

运行它时,出现以下错误:

C:\tmp>jpype_test.py
Traceback (most recent call last):
  File "C:\tmp\jpype_test.py", line 10, in <module>
    A = jpype.JClass("A")
  File "C:\Python27\lib\site-packages\jpype\_jclass.py", line 54, in JClass
    raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
jpype._jexception.ExceptionPyRaisable: java.lang.Exception: Class A not found

由于找不到A类,可能是与CLASSPATH相关的问题,但是我无法意识到我做错了什么。

有什么线索吗?

编辑1:

问题仍然存在。但是,只是增加了我的问题,如果我使用本机Java库(例如:java.util),代码将运行而没有错误。例如,以下代码有效:

import jpype
jpype.startJVM(jpype.getDefaultJVMPath())
util = jpype.JPackage("java.util")
al = util.ArrayList()
al.add(1)
al.add(2)
print al.size()
jpype.shutdownJVM()

并返回2。

编辑2:

问题已解决,请参见下面的答案…


问题答案:

我解决了问题,在此将答案留作记录。

1) 源代码没有任何问题。

2)问题是my Python是32位,而my java sdk(包括javac字节码编译器)是64位。我卸载了,java sdk然后重新安装了32位版本。做完了!解决了!



 类似资料:
  • JPype 能够允许Python程式完全存取Java类库,与JPython不同之处在于,其是从native 层直接访问JVM,而不是通过重实现Python来达到目的的。 JPype安装方法:http://hep.phys.utk.edu/BRM_Interface/index.php/Installing_JPype (目前Windows支持python2.5和2.6,可以直接下载安装包安装即可)

  • 问题内容: 我已经安装了两个jdk-jdk 1.5和jdk 1.8。我有以下Ant build.xml配置文件: 在安装jdk1.8之前,从Eclipse调用的Ant成功编译了所有源代码。但是现在,我有以下错误消息: 我的JAVA_HOME和JRE_HOME: 并在Eclipse JRE中将其设置为1.5。Java 1.8在安装过程中会设置一些配置吗? 问题答案: 已知低于1.9.0的Apache

  • 我已经安装了两个JDK--JDK1.5和JDK1.8。我有以下Ant build.xml配置文件: 在安装JDK1.8之前,从Eclipse调用的Ant成功地编译了所有源代码。但现在,我有以下错误消息: 我的JAVA_HOME和JRE_HOME: 并在Eclipse JRE中设置为1.5。Java 1.8在安装过程中是否设置了一些配置?

  • 问题内容: 我试图使用SpringJUnit4ClassRunner创建一个单元测试,但是每次执行测试时,它都说它无法使用mvn install找到SpringJUnit4ClassRunner。 这是我的代码 这是我的POM文件: 我正在使用适合IDE的springSource工具开发此spring mvc应用程序,并且在IDE上将SpringJUnit4ClassRunner突出显示为错误,尽

  • 问题内容: 我正在尝试使用Jersey框架构建RESTFul客户端,因此添加了以下类: 但是,即使我在WEB-INF / lib和应用程序类路径下有以下jar,我也找不到未找到的错误类ClientBuilder: 所以有人可以告诉我我在这里想念的那个罐子吗?在哪里可以找到它?我搜索了Web,发现唯一具有ClientBuilder的jar与RESTEasy框架有关,所以我认为这没有关系。 谢谢你的时

  • 问题内容: 我一直在尝试在脚本中打开Word文档,但收到相同的错误。 我的代码: 我试图更改和删除部分中的分号。 仍然出现相同的错误。 我在Mac和基于Linux的虚拟主机上使用的。 问题答案: 从PHP 5.4.5开始,COM和DOTNET不再内置在php内核中。您必须在php.ini中添加COM支持: 否则,您将在错误日志中看到此消息:致命错误:未找到类“ COM” 该扩展包含在Windows