我有一个使用串口的项目,它需要运行两个文件,win32.dll文件(位于java运行时环境bin文件夹中)和javax.comm.properties文件(位于java运行时环境lib文件夹)。当我从eclipse运行项目时它可以工作,但是当我尝试构建一个jar文件进行分发时,它将无法工作。我怀疑这是因为jar中没有包含dll和属性文件。我如何指定他们需要在那里?
答案 0 :(得分:3)
您通常不会将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目录中就可以了。
答案 1 :(得分:2)
我认为javax.comm.properties只需要在你的类路径上。您可以将它添加到您交付的罐子的顶层。
InputStream is = MainClass.class.getResourceAsStream(“javax.comm.properties”); if(is == null){property missing ....}
我认为win32.dll只需要在%PATH%(windows)或$ LD_LIBRARY_PATH(unix)上......
答案 2 :(得分:0)
jar文件只是一个普通的zip文件。如果要向其添加文件,只需使用winzip等工具。
答案 3 :(得分:0)
使用Ant,您可以将所有内容装入您想要的Jar中。所以让Ant创建你的Jar,而不是Eclipse:)