我有一个使用串口的项目,它需要两个文件才能运行,win32.dll 文件(位于 java 运行时环境 bin 文件夹中)和 javax.comm.properties 文件(位于 java 运行时环境中lib 文件夹)。当我从 eclipse 运行项目时,它可以工作,但是当我尝试构建一个 jar 文件进行分发时,它就不起作用了。我怀疑这是因为 dll 和属性文件不包含在 jar 中。我如何指定他们需要在那里?
4 回答
您通常不会将 dll 和属性文件放在 jar 中。需要将属性文件以及其他 jar 文件添加到类路径中。jar 文件有一个清单文件,它定义了使用的类路径。你不能用 eclipse 编辑它。您需要定义一个 ant build.xml 文件并执行以下操作:
<jar jarfile="${dist}/MyJar.jar" basedir="${build}">
<manifest>
<attribute name="Main-Class" value="MyClass"/>
<attribute name="Class-Path" value="."/>
</manifest>
</jar>
然后将属性文件放在与jar相同的文件夹中。您可以通过右键单击 build.xml 并选择“Run as Ant target”来运行 ant 目标。
如果我没记错的话,将dll文件放在jre的bin目录中就可以了。
我认为 javax.comm.properties 只需要在你的类路径上。您可以将其添加到您交付的罐子的顶层。
InputStream = MainClass.class.getResourceAsStream("javax.comm.properties"); if (is == null) {属性缺失....}
我认为 win32.dll 只需要在 %PATH%(windows) 或 $LD_LIBRARY_PATH(unix) 上......
jar 文件只是一个普通的 zip 文件。如果要向其中添加文件,只需使用诸如 winzip 之类的工具即可。
使用 Ant,您可以将所有想要的东西打包到您的 Jar 中。所以让 Ant 创建你的 Jar,而不是 Eclipse :)