1. javac -Djava.ext.dirs=./lib -d classes Test.java 注:./lib为包含lib目录下面的所有jar包,-d是生成的class文件目录,Test.java即为测试代码。

    类似的,java -Djava.ext.dirs=./lib Test   也可以用-cp=classpath

  2. jar -tvf *.jar 查看jar包目录结构

jar示例:

vim testjar/Test.java

package testjar;

public class Test{

  public static void main(String[] args){

    System.out.println("hello jar");   

  }

}

jar -cvf test.jar testjar 将testjar文件夹中文件打包

jar -tvf test.jar 查看目录结构

jar -xvf test.jar 解压到当前目录

java -cp test.jar testjar.Test

改写MANIFEST.MF,使java运行代码简化

vim META-INF/MANIFEST.MF

Manifest-Version:1.0

Created-By:  ...

Main-Class: testjar.Test

将修改后的文件传入test.jar

jar -cvfm test.jar META-INF/MANIFEST.MF testjar


运行:java -jar test.jar


manifest.mf的部分清单

Manifest-Version: 1.0
Created-By: 1.5.0_07 (Sun Microsystems Inc.)

Main-Class: testjar.Test 
Specification-Title: jartest
Specification-Version: 1.1

Specification-Vendor: example.com

Implementation-Title: jartest

Implementation-Version: 1.1 
Implementation-Vendor: example.com


MANIFEST.MF中的内容可以用下面程序读取:

import java.io.IOException;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;
import java.util.jar.JarFile;

import java.util.jar.Manifest;

public class GetAttributes {

public static void main(String[] args) {

    try {

//test.jar  由上述 manifest.mf生成

        JarFile jf = new JarFile("D:\\code\\work\\test.jar");

        Manifest mf = jf.getManifest(); 
        Map m = mf.getMainAttributes();
        Set s = m.entrySet();  

        Iterator it = s.iterator();

        while (it.hasNext()) {

         System.out.println(it.next());
        }
      } catch (IOException e) {
           e.printStackTrace();
        }
      }
  }

mvn仓库设置,一般是~/.m2/settings.xml,或者是/etc/maven/settings.xml<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">   <mirrors>     <mirror>       <id>CN</id>       <name>OSChina Central</name>                                                                                                                              <url>http://maven.oschina.net/content/groups/public/</url>       <mirrorOf>central</mirrorOf>     </mirror>   </mirrors> </settings>