gpt4 book ai didi

Java 3D Hello World - Jar 卡住

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:39:11 24 4
gpt4 key购买 nike

我正在关注 this tutorial构建我的第一个 Java 3D 应用程序。我在我的项目中包含了 java3D libraries和我的 DllLoader 类提取(从类路径到 jar 的位置)并加载 j3dcore-ogl.dll:

public class DllLoader {

private DllLoader() {
}

public static void extractAndLoad(String dll) throws IOException {
int aux = dll.lastIndexOf('/');
if (aux == -1) {
aux = dll.lastIndexOf('\\');
}
File dllCopy = new File((aux == -1) ? dll : dll.substring(aux + 1));
try {
System.load(dllCopy.getAbsolutePath());
} catch (UnsatisfiedLinkError e1) {
try {
DllLoader.copyFile(DllLoader.class.getResourceAsStream(dll), dllCopy);
System.load(dllCopy.getAbsolutePath());
} catch (IOException e2) {
}
}
}

private static void copyFile(InputStream pIn, File pOut) throws IOException {
if (!pOut.exists()) {
pOut.createNewFile();
}
DataInputStream dis = new DataInputStream(pIn);
FileOutputStream fos = new FileOutputStream(pOut);
byte[] bytes = new byte[1024];
int len;
while ((len = dis.read(bytes)) > 0) {
fos.write(bytes, 0, len);
}
dis.close();
fos.close();
}
}

如果我从 Netbeans 运行项目,或者如果我使用 java -jar Hello3DWorld.jar" 从命令行打开 jar,一切正常。

我的问题是:如果我通过简单的双击运行 jar,什么也不会发生。 dll 出现在 jar 附近,但框架从未出现。

在我的代码中放置一些 JOptionPane.showMessageDialog() 以找出问题所在,我意识到执行没有抛出异常。它只是在加载 dll 后像循环一样卡住。你能帮我理解为什么只有双击 jar 才会挂起吗?问题是什么?

最佳答案

解决了我的问题:D
Windows 注册表中有一个错误...这是解决方案:
1) 运行 regedit
2) 找到HKEY_CLASSES_ROOT\jarfile\shell\open\command
3) 确保javaw.exe 的路径正确

关于Java 3D Hello World - Jar 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4775487/

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