gpt4 book ai didi

java - 使我的 Java 程序易于分发

转载 作者:行者123 更新时间:2023-12-01 15:50:52 27 4
gpt4 key购买 nike

我已经通过 exe 安装程序在 PC 上安装了 Java 3D API,该安装程序只是使用 j3dcore.jarvecmath.jarj3dutils 创建了一个新目录.jar 位于 lib 子目录中,j3dcore-ogl.dll 位于 bin 子目录中。

Netbeans 没有任何问题,我的代码编译和执行顺利,但是,一旦我构建了项目并尝试从命令提示符运行它,我收到一个 UnsatisfiedLinkError 提示 no j3dcore-ogl在 java.library.path 中。

Google 出手相救,给了我 3 个可行的解决方案:

  • 将 dll 文件复制到我的 JRE 的 bin 目录中
  • 将 dll 文件的路径添加到库路径 (java -Djava.library.path=dllpath)
  • 使用 System.load() 加载程序中的 dll(实际上,我无法让这个工作)

我的问题是:对于我错过的这个问题,是否有一个优雅的解决方案?

对于每台不同的 PC,有人想要使用这个程序,他必须复制 dll 或将其添加到库路径,然后才能运行,这似乎很乏味。 (附带问题:为什么 Netbeans 的 dll 没有问题?)

最佳答案

Making my Java program easily distributable

如果您的意思是“对最终用户来说很容易”,请查看 Java Web Start .

<小时/>

路人问:

Can you package the dll dependencies with Web Start?

是的,但是好多了。您可以将每个平台的 native 打包在单独的 Jars 中,并仅将它们提供给使用该 native 的平台,即使在 32 位和 64 位版本的 native 之间划分下载也是如此。

JWS 将 native 放在应用程序的运行时类路径上,准备在代码中加载。

这一切对于最终用户来说都是自动发生的,他们单击链接,在询问时批准信任对话框,然后应用程序就会安装 - 可能与桌面集成一起,并像魔术一样出现在屏幕上。

JWS 应用程序。使用 native 的需要以所有权限安全级别进行分发,因为 JVM 无法保证任何“ native ”的操作。

关于java - 使我的 Java 程序易于分发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6073935/

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