java导出一个可运行的jar,打开它会返回一个不满意的链接错误
我目前在Eclipse中编写了一个简单的GUI,可以按预期运行。我希望导出它,这样我就可以与我的朋友共享它(他不需要安装eclipse和java库)。我尝试了Eclipse提供的所有3种库处理方法,但都不起作用。我在网上读了一点,看到了一些关于清单文件的信息,但不太确定如何处理它。这会有帮助吗
你可以在下面搜索框中键入要查询的问题!
我目前在Eclipse中编写了一个简单的GUI,可以按预期运行。我希望导出它,这样我就可以与我的朋友共享它(他不需要安装eclipse和java库)。我尝试了Eclipse提供的所有3种库处理方法,但都不起作用。我在网上读了一点,看到了一些关于清单文件的信息,但不太确定如何处理它。这会有帮助吗
# 1 楼答案
正如第一个屏幕截图中的错误消息所示,这里缺少的是本机库——根据特定于操作系统的本机代码编写和编译的软件库。您需要做的是提供特定于运行软件的操作系统的库,例如用于32位或64位Windows的DLL。清单不提供包含这些库的功能
当程序在Windows上运行时,Java将在以下位置查找本机库:
将所有文件放在一个目录中可能是最简单的方法。如果您这样做,您应该能够以与现在相同的方式运行程序
如果要将本机库文件放在与运行程序的目录不同的目录中,而不是放在路径上,则只需使用
java.library.path
选项。只有在这种情况下,您才需要添加java.library.path
,例如,在java
之后添加-Djava.library.path=c:\path\to\your\lib
。还要注意的是,您可以使用相对路径,即在执行命令时相对于您所在目录的路径我还从您稍后的错误消息中看到,您有另一个依赖项,但依赖于java库
LeapJava.jar
。因为只有在只有一个jar的情况下运行带有-jar
的jar才有效,但是因为您有多个jar(您自己的程序加上依赖项),所以您需要使用-classpath
(简称-cp
)参数并添加主类。classpath参数是以分号分隔的类路径位置列表,而主类是包含public static void main
方法的类,例如your.package.name.YourMainClass
。假设你的用户界面。jar仍在C:\Users\Ian\Desktop\Leap Data UI
中,您应该能够导航到该目录并使用以下命令执行: