我已经为这个问题苦苦挣扎了两天,但我发现没有任何资源能够解决它。
我试图从Matlab(版本7.13.0.564(R2011b))调用java类(在底部添加了链接)。我已经使用 java 1.6 将 java 类编译成 .class 文件,并且还使用 javaaddpath 添加了文件所在文件夹的路径(当然,我已经检查了动态路径列表中的路径是否正确)。但是,当我尝试使用 javaMethod('main','PerlinNoiseGenerator','') 从 Matlab 调用该类时,出现错误:
“Java 类路径上无法找到 PerlinNoiseGenerator 类”
如果有从 Matlab 调用 java 的经验的人能够整理出一个简短的教程来说明如何做到这一点,我将非常感激。我可能要分发我的代码,所以我有点需要动态设置java路径,从我读到的内容来看,它确实应该是可能的,尽管我已经看到帖子表明它可能是问题的原因。
http://svn.j3d.org/code/tags/Xj3D-M10/src/java/org/j3d/texture/procedural/PerlinNoiseGenerator.java http://svn.j3d.org/code/tags/Xj3D-M10/src/java/org/j3d/texture/procedural/PerlinNoiseGenerator.java
通常我创建包含 java 类的 jar 文件。我之前在加载单个 java 类时也遇到过问题。在您的情况下,我在 xubuntu 13.04 x64 和 Matlab 2013a x64 上执行了以下操作来加载您的特定类:
-
使用 java 6(不是默认的 7)和选项编译它-d .
创建一组包文件夹,因为您的类定义了一个包org/j3d/texture/proecedural/
etc:
/usr/lib/jvm/java-6-openjdk-amd64/bin/javac -d . PerlinNoiseGenerator.java
这将编译该类并在当前主管中创建(因此.
) 包文件夹集。
-
使用以下命令再次制作包含您的类的 jar 文件jar
来自java 6.我命名它javaNoise.jar
:
/usr/lib/jvm/java-6-openjdk-amd64/bin/jar cf javaNoise.jar ./org/j3d/texture/procedural/PerlinNoiseGenerator.class
-
在Matlab中,在目录中javaNoise.jar
is:
javaaddpath('./javaNoise.jar');
-
创建 java 类的对象:
png=org.j3d.texture.procedural.PerlinNoiseGenerator()
% results in: png = org.j3d.texture.procedural.PerlinNoiseGenerator@3982a033
-
为了测试它,我只是生成了一些一维噪声:
png.noise1(1.2)
ans = -0.0960
希望这可以帮助。
P.S.
javaMethod('main','PerlinNoiseGenerator','')
不会工作,因为这个类没有 main 方法:-)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)