gpt4 book ai didi

java - 导出可运行的 jar,打开它会返回 UnsatisfiedLinkError

转载 作者:行者123 更新时间:2023-12-01 09:40:31 24 4
gpt4 key购买 nike

我目前在 Eclipse 中编写了一个简单的 GUI,它按预期运行。我希望导出它,这样我就可以与我的 friend 分享它(他不需要安装 eclipse 和 java 库)。我尝试了 Eclipse 提供的所有 3 种库处理方法,但没有一个有效。我在网上阅读了一些内容,看到了一些关于 list 文件的内容,但不太确定如何处理它。有帮助吗? This is what happens when I run it in the cmd

这是我放置.dll 文件附带的文件夹的位置。 enter image description here enter image description here这就是结果。难道我做错了什么? enter image description here

最佳答案

如第一个屏幕截图中的错误消息所示,这里缺少的是 native 库 - 编写并编译为特定于操作系统的 native 代码的软件库。您需要做的是提供特定于您的软件将运行的操作系统的库,例如。适用于 32 或 64 位 Windows 的 dll。 list 不提供包含这些库的功能。

当程序在 Windows 上运行时,Java 将在以下位置查找 native 库:

  • 当前目录
  • PATH环境变量中的目录
  • java.library.path 中的目录(如果已指定)

将所有文件放在一个目录中可能是最简单的方法。如果您这样做,您应该能够以与现在相同的方式运行该程序。

如果您想将 native 库文件放在与运行程序的目录不同的目录中,并且需要java.library.path选项,不在你的路径上。仅在这种情况下,您才需要添加 java.library.path,例如。在 java 之后添加 -Djava.library.path=c:\path\to\your\lib 。另请注意,您可以使用相对路径,即。相对于执行命令时所在目录的路径。

我还从您后来的错误消息中看到您有另一个依赖项,但依赖于 java 库 LeapJava.jar。由于使用 -jar 运行 jar 仅当您只有一个 jar 时才有效,但由于您有多个 jar(您自己的程序加上依赖项),因此您需要使用 -classpath (或简称 -cp)参数并添加您的主类。类路径参数是一个以分号分隔的类路径位置列表,而主类是包含您的 public static void main 方法的类,例如。 your.package.name.YourMainClass。因此,假设您的 UI.jar 仍在 C:\Users\Ian\Desktop\Leap Data UI 中,您应该能够导航到该目录并执行以下命令:

java -cp UI.jar;UI_lib\LeapJava.jar -Djava.library.path="UI_lib\x64" your.package.name.YourMainClass

关于java - 导出可运行的 jar,打开它会返回 UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493993/

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