zoukankan      html  css  js  c++  java
  • Eclipse打JAR包的使用

    编译Java代码你当然可以直接使用Javac,但对于大多同学还是使用Eclipse编辑器来得快捷。这篇文章来说说我使用Eclipse编译后的执行之路,走路许多弯路,看我一一道来。

    演示系统的架构

    首先看看我的目录结构:

    这个演示代码非常简单,结构也非常清晰,不能用于任何生产,只是为了演示而已。大致思路是:HelloJar项目为UserJar提供类库工具,HelloJar的Hello类只有一个方法:

    package net.oseye;
    
    public class Hello {
    	public String say(String name){
    		return "Hello,"+name;
    	}
    }

    而UserJar的RunMain类是程序入口,调用HelloJar的函数,代码如下:

    package net.oseye;
    
    import net.oseye.Hello;
    
    public class RunMain {
    
    	public static void main(String[] args) {
    		System.out.println(new Hello().say("oseye"));
    	}
    }

    整个架构就是如此,下面我们先来到处类库HelloJar吧。


    使用Eclipse到处Jar包

    1. 在HelloJar项目上右键菜单,选择“Export...”;
    2. 在弹出的Export对话框选择JAR File选项,如:

      这里为什么选择JAR file而不是Runnable JAR file,稍后再说。
    3. 点击Next,选择项目和导出JAR的目录

      一路Next或直接Finish,完成。如果不出差错,这就成功导出了JAR包。

    引用第三方JAR包

    由于UserJar使用了HelloJar.jar,现在我们展示下如何引用第三方JAR包的。

    在UserJar项目右键选择"Properties",打开对话框,点击“Add External JARs”按钮选择要引用的JAR包即可。

    直接执行程序

    在DOS命令行进入UserJar的bin目录执行,报了如下异常:

    这是因为引用了第三方的JAR包,需要设置classpath才能执行成功:

    java -cp .;d:jarHelloJar.jar net.oseye.RunMain

    如果引用很多第三方JAR岂不是很麻烦。于是我想把UserJar打成一个JAR包执行。


    执行JAR包

    最开始在网上搜到可以使用fatjar插件,可以把项目包括第三方JAR打成一个包。于是安装了fatjar,使用也非常方便。

    1. 在UserJar项目上右键选择"Build Fat Jar";
    2. 在对话框设置如下:

    3. Next,选择需要打成一个包的第三方JAR包,Finish即可。
    4. 执行JAR包:
      java -jar UserJar_fat.jar
      结果:
    5. 哈哈,这样是不是更方便。其实解压UserJar_fat.jar你就能看到HelloJar.jar:


    使用Eclipse打Runnable JAR file包

    上文说到为什么选择JAR file而不是Runnable JAR file,这里就简单说下两者的区别。前者是只把项目打包,不包括第三方JAR,而后者可以,就像使用FatJar插件一样。

    1. 先在UserJar右键"Run As" > "Java Application"(这需要有Main Class才行),否则下面的步骤走不通的;
    2. 在UserJar项目右键,如第一张图,选择选择“Runnable JAR file”;
    3. 点击Next,进入Export对话框:

      一定要经过第一步的Run,否则你的“Lanuch configuration”是空的。点击Finish完成即可。
    4. 对Library handling的三个选项稍作说明:
      • Extract required libraries into generated JAR:只把第三方JAR包需要的class提取来和项目一起打包

      • package equired libraries into generated JAR:和fatjar差不多,是把第三方的JAR一起打包,只是和FatJar的目录不太一样,FatJar是放在lib文件夹下,而它是放在根目录了

      • 第三个选项是把第三方的JAR包拷贝到另一个子目录里,而使用MANIFEST来设置

        其中MANIFEST内容如下:
        Manifest-Version: 1.0
        Class-Path: . UserJar_lib/HelloJar.jar
        Main-Class: net.oseye.RunMain

    总结:类库一般打包成JAR file,而可执行程序就没必要使用FatJar插件了,使用Eclipse自带的也蛮好的。

    出处:http://www.zhaiqianfeng.com    
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    从零开始学android开发-四大组件之一 Activity
    从零开始学android开发-详细谈谈intent的startActivityForResult()方法
    从零开始学android-一行两个按钮居中 布局
    nginx上用fastcgi配置python环境
    服务器程序源代码分析之三:gunicorn
    全面解读python web 程序的9种部署方式
    python检测文件是否更新
    nginx安装
    solr教程,值得刚接触搜索开发人员一看
    Shell标准输出、标准错误 >/dev/null 2>&1
  • 原文地址:https://www.cnblogs.com/zhaiqianfeng/p/4618713.html
Copyright © 2011-2022 走看看