lishankang

博客园 首页 新随笔 联系 订阅 管理

在eclipse中写个小测试程序(需要用到第三方jar文件),打成jar文件,然后到linux下执行做测试,查了很多资料也没有说怎么把第三方jar打入jar,使用ant,又太麻烦。

1   选择Main类----->右击选择export----->runable jar files(备注:不是jar file选项,jar file选项不能执行,只能供第三方调用),出现如下对话框

 

2 在Launch configuation中选择Main类处于的工程(选择其他的工程会生成jar失败)。如果Save as ANT script也选中并且提供路径,会顺便生成一个ant编译文件。Library handing选项就是集中处理第三方jar包的方式,我选择了第一种,根据意思翻译,其中几种也可以。

点击完成即可生成。用java -jar TestJarMain.jar 能正确执行。

解压TestJarMain.jar, 文件发现第三方jar以class的方式按照路径存在其中(我是自己写的jar,作为第三方jar)。

查看MANIFEST.MF文件,里面内容如下:

Manifest-Version: 1.0        ------版本
Class-Path: .                      -----当前路径,是参照路径还是执行时到当前路径下找?待研究,执行的时候,用绝对路径,都可以执行。
Main-Class: TestJarMain    -----执行的类是TestJarMain

如果第一步选择的是Jar file而不是Runable Jar file, 则该文件只有第一项---版本项,其他两项没有。

再看生成的build.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project default="create_run_jar" name="Create Runnable Jar for Project testJar12">
    <!--this file was created by Eclipse Runnable JAR Export Wizard-->
    <!--ANT 1.7 is required                                        -->
    <target name="create_run_jar">
        <jar destfile="C:/Documents and Settings/hz05995/桌面/TestJarMain.jar" filesetmanifest="mergewithoutmain">
            <manifest>
                <attribute name="Main-Class" value="TestJarMain"/>
                <attribute name="Class-Path" value="."/>
            </manifest>
            <fileset dir="D:/kanglsnow/workspace/testJar12/bin"/>
            <zipfileset excludes="META-INF/*.SF" src="C:/Documents and Settings/hz05995/桌面/TestJar.jar"/>
        </jar>
    </target>
</project>

还是基础太薄弱啦,流汗中。

posted on 2014-03-31 21:25  havedrop  阅读(823)  评论(0编辑  收藏  举报