Eclipse导出jar包含有第三方的jar包

时间:2021-01-08 09:06:53

一般的jar包导出用export,选择资源,可运行的选择下main类,就可以了。但是要含有第三方的jar包就不行了。

eclipse的专门打jar包的一个插件fat jar,安装插件后,多了个菜单build fat jar选项,期间要勾选第三方的jar包,最后输出jar包。

 很是不解的我于是就想探个究竟,为什么开始我怎么配置都无法运行了! 于是我就将 fat jar 打包出来的jar包解压缩后翻了一遍,顿时无语了。fat jar 狠的我无语了,直接将第三方jar包给解压了,然后统统放在目标jar包中,这样的话的确不会出现开始的错误


另一个方法,用ant的也可以解决问题

<path id="compile.classpath">             
    <fileset dir="lib">                     
        <include name="*.jar" /> 
    </fileset> 
</path>
  
<target name="init" depends="clean">      
    <mkdir dir="${dest.dir}" />   
</target>  
  
<target name="compile" depends="init">   
    <javac srcdir="${src.dir}" destdir="${dest.dir}" encoding="UTF-8"  includeantruntime="false">  
        <classpath refid="compile.classpath" />
    </javac>  
</target>  


<target name="jar" depends="compile">
<echo>${jar.file}</echo>
<jar basedir="${dest.dir}" destfile="${jar.file}">
<manifest>
<attribute name="Main-Class" value="${main.class}" />
<attribute name="Class-Path" value="" />
</manifest>
<zipfileset src="lib/ant-launcher.jar" excludes="META-INF/*" />
<zipfileset src="lib/ant.jar" excludes="META-INF/*" />  
</jar>
</target>
  
<target name="clean">      
    <delete dir="${dest.dir}"/>
    <delete file="${jar.file}"/> 
</target>  
  

其中<zipfileset>标签的src就是jar的地址。


ps:输出的jar包想在jar的同目录下读取配置,可以通过System.getProperty("user.dir")来获取当前运行的路径。

this.getClassEclipse导出jar包含有第三方的jar包 .getResource("").getPathEclipse导出jar包含有第三方的jar包这个包含packagename。

参考:http://tomfish88.iteye.com/blog/1157909