我遇到了一些麻烦,配置java3D以适应我的IDE环境......
我已经下载了j3d-1_5_2-linux-i586.zip,并解压缩了j3dcore.jar,j3dutils.jar,vecmath.jar,libj3dcore-ogl.so,libj3dcore-ogl-cg.so并将它们全部添加为“Referenced Libraries”我的项目文件夹。这摆脱了我得到的任何编译警告但是当我编译并运行应用程序时,我得到以下异常!
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
at java.lang.Runtime.loadLibrary0(Runtime.java:840)
at java.lang.System.loadLibrary(System.java:1047)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:231)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:200)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:157)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:987)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:299)
at Hello3d.<init>(Hello3d.java:10)
at Hello3d.main(Hello3d.java:18)
这里也快速浏览一下源代码。注意:一旦将Eclipse添加为Referenced Libraries,Eclipse就会使用Ctrl + Shift + O自动拉入导入库路径。
import javax.media.j3d.BranchGroup;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
public class Hello3d {
public Hello3d(){
SimpleUniverse universe = new SimpleUniverse();
BranchGroup group = new BranchGroup();
group.addChild(new ColorCube(0.3));
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(group);
}
public static void main(String[] args){
new Hello3d();
}
}
我不确定我对'j3dcore-ogl'有什么意义但是我坚持这一点。如何在系统环境或IDE项目中安装java3D?请帮忙。
IDE:Eclipse SDK 3.5.2
JVM:java-6-sun-1.6.0.22
操作系统:Ubuntu 10.04 LTS
我知道这个问题现在已经有几年了,但是这里的答案还不足以让我解决这个问题。他们只是部分帮助。 http://www.filsa.net/2008/07/17/eclipse-java3d-and-javalibrarypath/也有点帮助,但仍然不够。因此,我觉得有必要编写一份完整的清单,让Java3D在Eclipse中运行。
几个月前,我已经遇到了同样的问题,我在不明白我做了什么的情况下解决了这个问题。今天我想在不同的计算机上设置我的环境并猜测是什么,我又遇到了同样的问题。我忘记了我必须做的事情......但是,这次我更系统地解决了问题,现在我理解了每一步。
解决方案 - 每一步都很详细
1)如果要导入其他人的项目,请确保在Eclipse中安装并选择了正确的JDK和JRE。我的Eclipse选择了最新的JRE 7.我唯一安装过的。但是我工作的项目需要JDK 6和JRE 6.如果你需要有多个java版本,我建议在你的文件系统上使用以下结构
2)在Eclipse中,您必须执行以下步骤以选择正确的JDK和JRE。
3)正确设置Java环境,确保在您的计算机上安装了Java3D。你不能对此做错任何事。
4)在Java3D安装目录中,找到文件
如果您正确设置环境,这些文件的位置无关紧要,我将解释。因此,如果需要,可以将这些文件复制到项目目录中,以便在一个地方拥有所需的一切。
5)找到这些文件后,请确保
6)现在是今天救了我一天的部分。
对于Java Build Path中列出的每个Java3D库
您需要指定本机库位置。 Native库是j3dcore-ogl.dll,因此编辑本机库位置以指向包含j3dcore-ogl.dll的目录。
我相信,这些都是在eclipse中设置Java3D所必须采取的步骤,因为我今天在一台新电脑上设置了所有内容。现在我希望这些说明可以节省一些其他可怜的Java初学者,学生或程序员的日子:-)
我最近遇到了同样的问题,这是我修复它的方法:
运行'strace java filename'并查看顶部附近的行,例如“open(”/ usr / lib / jvm / java-8-oracle / jre / bin /../ lib / amd64 / libpthread.so“这将告诉你您的系统正在加载哪些二进制文件。
就我而言,重要的是amd64。
回到java3d下载页面并下载(在本例中)amd64 verson的二进制文件并安装它。覆盖lib / ext中的.so文件(vecmath,j3dcore和j3dutils)。
再次测试你的java3d程序,它应该工作。
我有这个问题。
你下载java3d插件并安装就足够了。
在你的搜索引擎,如谷歌搜索“java3d插件”
并下载所以安装它。
Java抱怨,因为它无法在Java3D附带的系统路径上找到本机库(* .so文件)。具体如何解决这个问题取决于你。您可以执行以下任何操作之一:
1)确保您的系统路径包含Java3D提供的* .so文件
2)设置LD_LIBRARY_PATH环境变量:export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH:/ usr / lib /“path-to-java3d-libraries”/
3)执行java时设置java.library.path:java -Djava.library.path = $ LD_LIBRARY_PATH:/ usr / lib /“path-to-java3d-libraries”/
为确保正确设置,请将以下内容添加到Java代码中,并确保报告的路径包含其上的共享库
System.out.println("LD Library Path:" + System.getProperty("java.library.path"));
我知道这是一个非常古老的问题,但是一些开发人员仍在安装一个过时的Java 3D版本,无论是否使用IDE都难以使用。请使用Java 3D 1.6.0并按照我的详细说明(英语和法语)here。
作为给出答案的附录,帮助我设置java 3d的是:将所有.dll文件从“C:\ Program Files \ Java \ Java3D \ 1.5.X \ bin \”复制并粘贴到“C:\ Program Files \”的Java \ JRE6 \ BIN \”。因此将Java3D形成为我的实际jre6(从bin到bin)。
以前我也将类路径/(你也可以设置路径)设置为3dcore.jar,j3dutils.jar,vecmath.jar,j3dcore-ogl.dll但仍然无法正常工作。
复制过去的j3dcore-ogl.dll(如上所述)并将类路径留给3dcore.jar,j3dutils.jar,vecmath.jar(在“C:\ Program Files \ Java \ Java3D \ 1.5.X \ ext \”中)它工作了精细。
我在这里找到了帮助:http://www.xinapse.com/Manual/install_windows.html看看第2点。
最好的祝福
project / properties / java build path / source选项卡/展开并选择本机库位置/导航到i386文件夹。
试试这段代码吧,它对我帮助:
GraphicsConfiguration config =
SimpleUniverse.getPreferredConfiguration();
Canvas3D canvas3D = new Canvas3D(config);
我有同样的问题。解决了它设置本机路径:
属性 - java构建路径 - 库 - java3D库 - 本机库位置 - 外部文件夹----->查找路径:.... Java / Java3D / 1.5.1 / bin或路径所在的文件:j3dcore- ogl.dll
解决了 - 对于Ansar Wright。
我在linux上使用java 8,并从https://java3d.java.net/binary-builds.html下载(将linux-amd64版本用于intel 64位系统)。
解压缩下载的文件,然后解压缩包含的j3d-jre.zip并将jar文件添加到项目,并将libj3dcore-ogl.so添加到jar,它仍然无法正常工作。我不得不将libj3dcore-ogl.so添加到库路径中。 (像我一样懒惰,我只是将它复制到/ usr / lib,这就足够了。)
现在它正在运作。
PS:请务必事先删除任何其他j3dcore.jar和j3dutils.jar。
我有这个确切的问题,我的解决方案(我使用eclipse)是下载32位(i586)(来自https://java3d.java.net/binary-builds.html)存档并使用这些本机。