2

我正在尝试运行 JBullet 库的基本演示。但是它给出了找不到 JAWT 接口的说法。它在 Windows 8 Pro 和 Ubuntu 13.10(我已经在我的笔记本电脑上测试过)上运行良好,但在运行 OS X 10.8.5 和 Oracle Java 7 的 Mac 上却不行。

在此处输入图像描述

这是完整的例外。

org.lwjgl.LWJGLException: Could not get the JAWT interface
    at org.lwjgl.opengl.AWTSurfaceLock.lockAndInitHandle(Native Method)
    at org.lwjgl.opengl.AWTSurfaceLock.access$100(AWTSurfaceLock.java:49)
    at org.lwjgl.opengl.AWTSurfaceLock$1.run(AWTSurfaceLock.java:89)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.lwjgl.opengl.AWTSurfaceLock.privilegedLockAndInitHandle(AWTSurfaceLock.java:86)
    at org.lwjgl.opengl.AWTSurfaceLock.lockAndGetHandle(AWTSurfaceLock.java:64)
    at org.lwjgl.opengl.MacOSXCanvasPeerInfo.initHandle(MacOSXCanvasPeerInfo.java:53)
    at org.lwjgl.opengl.MacOSXDisplayPeerInfo.doLockAndInitHandle(MacOSXDisplayPeerInfo.java:56)
    at org.lwjgl.opengl.PeerInfo.lockAndGetHandle(PeerInfo.java:85)
    at org.lwjgl.opengl.MacOSXContextImplementation.create(MacOSXContextImplementation.java:46)
    at org.lwjgl.opengl.Context.<init>(Context.java:113)
    at org.lwjgl.opengl.Display.create(Display.java:783)
    at org.lwjgl.opengl.Display.create(Display.java:733)
    at com.bulletphysics.demos.opengl.LWJGL.main(LWJGL.java:54)
    at com.bulletphysics.demos.basic.BasicDemo.main(BasicDemo.java:228)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at com.sun.javaws.Launcher.executeApplication(Unknown Source)
    at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
    at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
    at com.sun.javaws.Launcher.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:724)

有人能说一下是什么原因吗?

谢谢。

4

1 回答 1

1

有几个问题。

  • jbullet 代码附带的 lwjgl 版本不适用于Mac OS X 上的 Java 7
  • 需要更改 JBullet 代码才能在较新的 lwjgl 上工作

解决方案/解决方法:

  • 使用 1.6 运行时
  • 修复 jbullet 代码以在更新版本的 lwjgl 上工作。

注意:如果您安装了 Java 7,则不能使用 webstart 启动器进行演示;它根本行不通。

我做了什么让它工作:

  • 下载了jbullet代码
  • 使用 1.6 VM 运行:

    /usr/libexec/java_home -v 1.6 --exec java -Djava.library.path=(pwd)/lib/lwjgl/macosx -cp dist/\*:(pwd)/lib/lwjgl/\* com.bulletphysics.demos.basic.BasicDemo
    

在这种情况下,我从苹果下载站点安装了完整的 1.6 JDK;我认为你可以/usr/libexec/java_home -R -v 1.6让它显式安装 1.6 JRE,它应该适用于这个演示。

于 2013-11-11T15:02:28.490 回答