gpt4 book ai didi

java - 在 Matlab 中使用 Java 类

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:48:38 24 4
gpt4 key购买 nike

我已经为这个问题苦苦挣扎了两天,但我发现没有任何资源能够解决它。

我正在尝试从 Matlab(版本 7.13.0.564 (R2011b))调用一个 java 类(在底部添加了链接)。我已经使用 java 1.6 将 java 类编译成一个 .class 文件,并且还使用 javaaddpath 添加了文件所在文件夹的路径(我当然已经检查过动态路径列表中的路径是否正确)。但是,当我尝试使用 javaMethod('main','PerlinNoiseGenerator','') 从 Matlab 调用该类时,出现错误:

"No class PerlinNoiseGenerator can be located on Java class path"

如果有从 Matlab 调用 java 的经验的人可以整理出有关如何执行此操作的简短教程,我将不胜感激。我可能会分发我的代码,所以我有点需要动态设置 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 上执行了以下操作以加载您的特定类:

  1. 使用带有选项 -d 的 java 6(不是默认的 7)编译它。 以创建一组包文件夹,因为您的类定义了一个包 org/j3d/纹理/程序/ 等:

    /usr/lib/jvm/java-6-openjdk-amd64/bin/javac -d 。 PerlinNoiseGenerator.java这将编译该类并在当前目录中创建(因此 .)包文件夹集。

  2. 再次使用 java 6 中的 jar 制作包含您的类的 jar 文件。我将其命名为 javaNoise.jar:

    /usr/lib/jvm/java-6-openjdk-amd64/bin/jar cf javaNoise.jar ./org/j3d/texture/procedural/PerlinNoiseGenerator.class

  3. 在 Matlab 中,在 javaNoise.jar 所在的目录中:

    javaaddpath('./javaNoise.jar');

  4. 创建您的 java 类的对象:

    png=org.j3d.texture.procedural.PerlinNoiseGenerator()

    % 结果为:png = org.j3d.texture.procedural.PerlinNoiseGenerator@3982a033

  5. 为了测试它,我刚刚生成了一些一维噪声:

    png.noise1(1.2)

    ans = -0.0960

希望这对您有所帮助。

附言javaMethod('main','PerlinNoiseGenerator','') 将无法工作,因为此类没有 main 方法:-)。

关于java - 在 Matlab 中使用 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853636/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com