<p>下面是一些关于为jpype指定类路径的进一步节点。在</p>
<p><strong>A.检查JDK路径</strong></p>
<p>我安装了几个版本的javajdk,但是getDefaultJVMPath没有产生预期的路径。我需要替换</p>
<pre><code>jpype.getDefaultJVMPath()
</code></pre>
<p>对于JDK的路径,它实际上被用来编译代码,例如</p>
^{pr2}$
<p><strong>B.相对路径</strong>
可以使用相对路径。例如,如果我的python文件位于包文件夹“pkg”中,而java类文件位于“bin”文件夹的子文件夹“foo”中:</p>
<p>父文件夹</p>
<ul>
<li>包装/主.py在</li>
<li><p>垃圾桶/食品/食品类在</p>
<p>在jpype.startJVM(jvmPath,'-Djava.class.path=../bin“)
链接=jpype.JClass类('福。福')</p></li>
</ul>
<p>在本例中,java应用程序的工作目录将是pkg文件夹。换句话说,在Foo类的main方法中,您可能需要使用“../”来访问parentFolder。在</p>
<p><strong>C.-cp选项不起作用</strong>
我尝试使用-cp选项而不是-Djava.class.path,我会觉得更坚定。但是,以下代码不起作用:</p>
<pre><code>jpype.startJVM(jvmPath, '-cp', classPath)
</code></pre>
<p><strong>D.需要单独包括罐子</strong></p>
<p>我试图包含一个包含几个jar文件的文件夹。在</p>
<p>父文件夹</p>
<ul>
<li>福/主.py在</li>
<li>图书馆/食物罐在</li>
</ul>
<p>以下代码不起作用:</p>
<pre><code>jpype.startJVM(jvmPath, '-Djava.class.path=../lib/*")
link = jpype.JClass('foo.Foo')
</code></pre>
<p>每个jar文件需要单独包含,例如:</p>
<pre><code>libOath = '../lib'
libJarPaths = str.join(';', [libPath + '/' + name for name in os.listdir(libPath)])
jpype.startJVM(jvmPath, '-Djava.class.path=../lib/*")
link = jpype.JClass('foo.Foo')
</code></pre>
<p>(来自<a href="https://stackoverflow.com/questions/44033891/jpype-python-importing-folder-of-jars">JPype (Python): importing folder of jar's</a>的解决方案)</p>