zoukankan      html  css  js  c++  java
  • 关于jar包的创建及引用相关问题

    jar包有两种,一种是纯粹的库功能,没有main入口函数,故无法直接执行;一种是包含main的可执行包!

    如有hello/hello.java文件:

    $ cd hello/
    $ javac hello.java
    $ java Hello (Hello为类名,如果Hello类具有main函数的话,可以这么执行)

    第一种jar包命令:

    jar cvf hello.jar hello

    或者

    $ jar cvf hello.jar hello/*.class

    通过如下命令查看两个jar的内容:

    $ jar tf hello.jar
    META-INF/
    META-INF/MANIFEST.MF
    hello/
    hello/hello.class

    显示结果是一样的。

    对于第二种可执行jar包,方法其实可以跟第一种一样,然后再修改MANIFEST.MF文件。
    在MANIFEST.MF文件中只需要添加一行:

    Main-Class: 可执行主类全名(即包含main函数的类名称)

    即可。

    但也可以预先创建MANIFEST.MF文件,内容跟上面一样,让该文件与hello目录保持在同一级,然后:

    $ jar cvfm hello.jar MANIFEST.MF hello

    然后就可以通过:

    $ java -jar hello.jar

    运行了。

    ===================

    在实际项目中,可能需要很多个类文件,建议每个类文件均放到一个独立的文件之中,文件名与该类名应一致,类的声明为“public class xxx”(当然也可以将很多个类放到同一个文件中,但只有一个类能声明成public(即与文件名一致的那个类),这将导致其它未声明为public的类 无法为其它程序调用)。

    比如有两个位于同一目录的类文件(它们之间有调用关系),将会被打包成sp_sdk.jar作为库文件使用,文件目录关系如下:

    $ ls -l sp/android/printer
    -rw-r--r-- 1 zwang zwang 944 2011-06-25 17:52 FontProperty.class
    -rw-r--r-- 1 zwang zwang 1319 2011-06-25 17:51 FontProperty.java
    -rw-r--r-- 1 zwang zwang 5498 2011-06-25 17:53 PrintGraphics.class
    -rw-r--r-- 1 zwang zwang 5751 2011-06-25 17:51 PrintGraphics.java

    各个java文件的开头需要声明如下(否则其它文件无法import这两个类):

    package sp.android.printer;

    然后编译命令是:

    $ javac sp/android/printer/FontProperty.java 
    $ javac sp/android/printer/PrintGraphics.java

    注意编译的位置,因为各自已经声明了“package sp.android.printer;”,所以直接进入到sp/android/printer/目录下是编译不过的。

    然后生成jar文件:

    $ tar cvf sp_sdk.jar sp

    然后就可以创建测试程序调用该库了(测试程序里面就可以“import sp.android.printer.*”了)。

    假如测试程序test.java与sp_sdk.jar同一目录,编译及运行命令:

    $ javac test.java
    $ java Test

    如果不在同一目录,编译及运行命令:

    $ javac -classpath .:/path/to/sp_sdk.jar test.java
    $ java -cp .:/path/to/sp_sdk.jar Test
  • 相关阅读:
    前端JavaScript(2) --常用内置对象,函数,伪数组 arguments,关于DOM的事件操作,DOM介绍
    前端JavaScript(3)-关于DOM操作的相关案例,JS中的面向对象、定时器、BOM、位置信息
    前端JavaScript(1) --Javascript简介,第一个JavaScript代码,数据类型,运算符,数据类型转换,流程控制,百度换肤,显示隐藏
    前端CSS(3)
    CSS标签大全
    前端CSS(2)
    前端CSS(1)
    前端HTML(二/三)
    前端基础(1)
    第一个自定义HTML网页
  • 原文地址:https://www.cnblogs.com/wzc0066/p/2948155.html
Copyright © 2011-2022 走看看