当前位置: 技术问答>java相关
一个JAVA、JAVA3D的问题。编译通过,执行出错。
来源: 互联网 发布时间:2015-06-28
本文导语: jdk1.3安装在c:jdk1.3目录下。 java3d sdk安装在c:jdk1.3java3d目录下。 c:autoexec.bat中 set PATH=C:JDK1.3BIN;%PATH% set JAVA_HOME=c:jdk1.3 set CLASSPATH=.;c:jdk1.3libdt.jar;c:jdk1.3libtools.jar;C:jdk1.3java3djrelibextj3daudio.jar;C:jdk1.3java3djrelibextj3dcore.jar;...
jdk1.3安装在c:jdk1.3目录下。
java3d sdk安装在c:jdk1.3java3d目录下。
c:autoexec.bat中
set PATH=C:JDK1.3BIN;%PATH%
set JAVA_HOME=c:jdk1.3
set CLASSPATH=.;c:jdk1.3libdt.jar;c:jdk1.3libtools.jar;C:jdk1.3java3djrelibextj3daudio.jar;C:jdk1.3java3djrelibextj3dcore.jar;C:jdk1.3java3djrelibextj3dutils.jar;C:jdk1.3java3djrelibextvecmath.jar
在c:jdk1.3java3dw目录下有下面的文件(SimpleCone.java):
import java.applet.Applet;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.Cone;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class SimpleCone extends Applet{
public BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
TransformGroup objTrans = new TransformGroup();
objRoot.addChild(objTrans);
Appearance app = new Appearance();
Material material = new Material();
material.setEmissiveColor(new Color3f(1.0f,0.0f,0.0f));
app.setMaterial(material);
Cone cone=new Cone(.5f,1.0f,1,app);
objTrans.addChild(cone);
objRoot.compile();
return objRoot;
}
public SimpleCone() {
setLayout(new BorderLayout());
Canvas3D c = new Canvas3D(null);
add("Center", c);
BranchGroup scene = createSceneGraph();
SimpleUniverse u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public static void main(String[] args) {
new MainFrame(new SimpleCone(), 256, 256);
}
}
在编译时。在dos下在c:jdk1.3java3dw目录下:
javac SimpleCone.java 通过!
执行时:
java SimpleCone 出错如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3d in java.library.path
at java.lang.classloader.loadlibrary(classloader.java,1312)
at..................
at..........................
请问为什么? 我用jview SimpleCone.class 调试,
好像 Canvas3D c = new Canvas3D(null) 有问题。
java3d sdk安装在c:jdk1.3java3d目录下。
c:autoexec.bat中
set PATH=C:JDK1.3BIN;%PATH%
set JAVA_HOME=c:jdk1.3
set CLASSPATH=.;c:jdk1.3libdt.jar;c:jdk1.3libtools.jar;C:jdk1.3java3djrelibextj3daudio.jar;C:jdk1.3java3djrelibextj3dcore.jar;C:jdk1.3java3djrelibextj3dutils.jar;C:jdk1.3java3djrelibextvecmath.jar
在c:jdk1.3java3dw目录下有下面的文件(SimpleCone.java):
import java.applet.Applet;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.geometry.Cone;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
public class SimpleCone extends Applet{
public BranchGroup createSceneGraph() {
BranchGroup objRoot = new BranchGroup();
TransformGroup objTrans = new TransformGroup();
objRoot.addChild(objTrans);
Appearance app = new Appearance();
Material material = new Material();
material.setEmissiveColor(new Color3f(1.0f,0.0f,0.0f));
app.setMaterial(material);
Cone cone=new Cone(.5f,1.0f,1,app);
objTrans.addChild(cone);
objRoot.compile();
return objRoot;
}
public SimpleCone() {
setLayout(new BorderLayout());
Canvas3D c = new Canvas3D(null);
add("Center", c);
BranchGroup scene = createSceneGraph();
SimpleUniverse u = new SimpleUniverse(c);
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
public static void main(String[] args) {
new MainFrame(new SimpleCone(), 256, 256);
}
}
在编译时。在dos下在c:jdk1.3java3dw目录下:
javac SimpleCone.java 通过!
执行时:
java SimpleCone 出错如下:
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3d in java.library.path
at java.lang.classloader.loadlibrary(classloader.java,1312)
at..................
at..........................
请问为什么? 我用jview SimpleCone.class 调试,
好像 Canvas3D c = new Canvas3D(null) 有问题。
|
你的j3d没有安装正确。
你是下载了java3d某某的exe文件安装的吗?
如果不是,那你应该正确安装j3d
否则:
这种情况应该是在你的%path%中找不到j3d.dll引起的。
你在你的path里头加上你j3d.dll文件所在的目录的路径试一试。
应该没有问题。
你是下载了java3d某某的exe文件安装的吗?
如果不是,那你应该正确安装j3d
否则:
这种情况应该是在你的%path%中找不到j3d.dll引起的。
你在你的path里头加上你j3d.dll文件所在的目录的路径试一试。
应该没有问题。