Java运行时错误

Java运行时错误,java,Java,我正在用java制作一个Xj3D测试文件,我有一个与一个名为test.X3D和test.X3DV的X3D和X3DV文件一起工作的文件,这是一个相同的文件,只有两种不同的格式,它是一个红色的正方形。但是,当我尝试将自己的X3D文件放入时,会出现以下运行时错误 run: Mar 20, 2016 12:11:30 PM java.util.prefs.WindowsPreferences <init> WARNING: Could not open/create prefs root n

我正在用java制作一个Xj3D测试文件,我有一个与一个名为
test.X3D
test.X3DV
的X3D和X3DV文件一起工作的文件,这是一个相同的文件,只有两种不同的格式,它是一个红色的正方形。但是,当我尝试将自己的X3D文件放入时,会出现以下运行时错误

run:
Mar 20, 2016 12:11:30 PM java.util.prefs.WindowsPreferences <init>
WARNING: Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002. Windows RegCreateKeyEx(...) returned error code 5.
Message: WARNING: antialiasing will be disabled because the   DefaultGLCapabilitiesChooser didn't supply it
Mar 20, 2016 12:11:32 PM org.odejava.Odejava <clinit>
SEVERE: Native code library (32 and 64 bit library) failed to load: java.lang.UnsatisfiedLinkError: no odejava in java.library.path
java.lang.UnsatisfiedLinkError: no odejava in java.library.path
Warning: The class that you specificed for the physics manager is not a  valid instance of PhysicsManager
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1864)
    at java.lang.Runtime.loadLibrary0(Runtime.java:870)
    at java.lang.System.loadLibrary(System.java:1122)
    at org.odejava.Odejava.<clinit>(Odejava.java:103)
    at org.xj3d.impl.core.eventmodel.DefaultRigidBodyPhysicsManager$1.run(DefaultRigidBodyPhysicsManager.java:149)
    at org.xj3d.impl.core.eventmodel.DefaultRigidBodyPhysicsManager$1.run(DefaultRigidBodyPhysicsManager.java:142)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.xj3d.impl.core.eventmodel.DefaultRigidBodyPhysicsManager.<clinit>(DefaultRigidBodyPhysicsManager.java:141)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at org.web3d.vrml.renderer.ogl.browser.OGLBrowserCanvas$4.run(OGLBrowserCanvas.java:1069)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.web3d.vrml.renderer.ogl.browser.OGLBrowserCanvas.loadClass(OGLBrowserCanvas.java:1064)
    at org.web3d.vrml.renderer.ogl.browser.OGLBrowserCanvas.initialize(OGLBrowserCanvas.java:694)
    at org.xj3d.ui.awt.browser.ogl.BrowserJPanel.<init>(BrowserJPanel.java:256)
    at org.xj3d.ui.awt.browser.ogl.X3DBrowserJPanel.<init>(X3DBrowserJPanel.java:75)
    at org.xj3d.ui.awt.browser.ogl.X3DOGLBrowserFactoryImpl.createComponent(X3DOGLBrowserFactoryImpl.java:219)
    at org.web3d.x3d.sai.BrowserFactory.createX3DComponent(BrowserFactory.java:263)
    at xj3dtest.Xj3DTest.<init>(Xj3DTest.java:42)
    at xj3dtest.Xj3DTest.main(Xj3DTest.java:56)

Message: Device found: Mouse-0
Message: Device found: Keyboard-0
Exception in thread "main" org.web3d.vrml.lang.UnsupportedNodeException: Request for a node that is not part of the specified profile and components for this stream: viewpoint
    at org.web3d.vrml.renderer.DefaultNodeFactory.createVRMLNode(DefaultNodeFactory.java:730)
    at org.web3d.vrml.renderer.ogl.OGLMainSceneBuilder.startNode(OGLMainSceneBuilder.java:147)
    at org.web3d.vrml.renderer.ogl.OGLVRMLSceneBuilder.startNode(OGLVRMLSceneBuilder.java:514)
    at org.web3d.x3d.jaxp.X3DSAVAdapter.startElement(X3DSAVAdapter.java:830)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1364)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2787)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
    at org.web3d.parser.GeneralisedReader.parse(GeneralisedReader.java:261)
    at org.xj3d.impl.core.loading.DefaultWorldLoader.loadNow(DefaultWorldLoader.java:156)
    at org.xj3d.impl.core.loading.DefaultWorldLoader.loadNow(DefaultWorldLoader.java:203)
    at org.web3d.vrml.scripting.browser.X3DCommonBrowser.createX3DFromURL(X3DCommonBrowser.java:264)
    at  org.web3d.vrml.scripting.external.sai.SAIBrowser.createX3DFromURL(SAIBrowser.java:843)
    at xj3dtest.Xj3DTest.<init>(Xj3DTest.java:50)
    at xj3dtest.Xj3DTest.main(Xj3DTest.java:56)
我正在使用Netbeans对其进行编程,我在Xj3DTest项目中保存了
hafodty_circle1.x3d
hafodty_circle1.x3dv
。我知道,当我使用
test.x3d
test.x3dv
运行代码时,我会得到一个运行时错误,但是当我有其他
x3d
文件时,我会得到这些文件的输出,而当我运行代码时,我不会得到任何输出。对这个错误的任何帮助都将非常重要,谢谢

编辑2016年4月1日

在项目属性、运行菜单和VM选项中。我有以下资料:

java -Djava.library.path="C:\Users\matt\Documents\NetBeansProjects\natives\Windows_10\amd64"

java -Djava.library.path="C:\Users\matt\Documents\NetBeansProjects\natives\Windows_10\x86_64"
因为我不知道应该使用哪个
odejava64.dll
。现在,当我运行项目时,出现以下错误:

Error: Could not find or load main class java
C:\Users\matt\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 0 seconds)
执行器代码段中的代码是:

<?xml version="1.0" encoding="UTF-8"?>
    <project name="{0} (run)" default="run" basedir=".">
    <target name="run">        
        <translate-classpath classpath="${classpath}" targetProperty="classpath-translated" />
        <property name="run.jvmargs" value="" />
        <property name="work.dir" value="${basedir}"/>
        <property name="application.args" value="" />
        <property name="java.failonerror" value="true"/>
        <java classpath="${classpath-translated}" classname="${classname}" dir="${work.dir}" jvm="${platform.java}" fork="true" failonerror="${java.failonerror}">
            <jvmarg value="-Dfile.encoding=${encoding}"/>
            <redirector inputencoding="${encoding}" outputencoding="${encoding}" errorencoding="${encoding}"/>
            <jvmarg line="${run.jvmargs}" />
            <arg line="${application.args}" />
            <syspropertyset>
                <propertyref prefix="run-sys-prop."/>
                <mapper from="run-sys-prop.*" to="*" type="glob"/>
            </syspropertyset>
        </java>
    </target>
</project>

此错误
未满足LinkError
表示您缺少本机库(
odejava.dll
,如果您在Windows上运行),或者您将32位Java与64位本机库一起使用,反之亦然

确保系统属性
java.library.path
设置为包含本机库的目录,并确保java运行时环境的“位”与本机库相同(32位或64位)

运行程序时,可以使用
-D
命令行选项设置
java.library.path
属性。例如,如果
odejava.dll
位于目录
C:\MyProject\lib
中:

java -Djava.library.path=C:\MyProject\lib com.myproject.MyMainClass

此错误
unsatifiedLinkError
表示您缺少本机库(
odejava.dll
,如果您在Windows上运行),或者您正在使用32位Java和64位本机库,反之亦然

确保系统属性
java.library.path
设置为包含本机库的目录,并确保java运行时环境的“位”与本机库相同(32位或64位)

运行程序时,可以使用
-D
命令行选项设置
java.library.path
属性。例如,如果
odejava.dll
位于目录
C:\MyProject\lib
中:

java -Djava.library.path=C:\MyProject\lib com.myproject.MyMainClass

我在这里找到了
odejava.dll
C:\Users\matt\Documents\NetBeansProjects\natives\windowsxp\x86但是我当前的操作系统是windows10,所以我应该把它移到
natives
文件夹中的
windows10
文件夹中,而不是把它放在
windowsxp
文件夹中吗?@smitthy你为什么不试试呢看看它是否有效?如果没有,您需要配置NetBeans,以便在运行应用程序时设置正确的
java.library.path
。我不是NetBeans用户,所以我不能告诉你怎么做。那是因为目录名中有一个空格。把目录名放在引号里:
java-Djava.library.path=“C:\Users…”
等等。我已经解决了
java-Djava.library.path='C:\Users\matt\Documents\NetBeansProjects\natives\windows10'
的问题,但我仍然遇到同样的错误。困扰我的是,当涉及到
test.x3d
时,它正在处理该错误,但没有处理我已经处理过的任何
.x3d
文件made@smitthy将路径放在双引号中,而不是单引号中。不是:
“C:\Users…”
而是
“C:\Users\…”
。我在这里找到了
odejava.dll
C:\Users\matt\Documents\NetBeansProjects\natives\windowsxp\x86
,但是我当前的操作系统是windows10,所以我应该把它移到
natives
文件夹中的
windows10
文件夹中,而不是把它放在
windowsxp
文件夹中吗?@smitty你为什么不干脆就这样做呢试试看它是否管用?如果没有,您需要配置NetBeans,以便在运行应用程序时设置正确的
java.library.path
。我不是NetBeans用户,所以我不能告诉你怎么做。那是因为目录名中有一个空格。把目录名放在引号里:
java-Djava.library.path=“C:\Users…”
等等。我已经解决了
java-Djava.library.path='C:\Users\matt\Documents\NetBeansProjects\natives\windows10'
的问题,但我仍然遇到同样的错误。困扰我的是,当涉及到
test.x3d
时,它正在处理该错误,但没有处理我已经处理过的任何
.x3d
文件made@smitthy将路径放在双引号中,而不是单引号中。不是:
'C:\Users…'
而是
“C:\Users\…”
。可能重复的