用记事本写的java程序并控制台进行编译运行,并且把第三方的jar包一起打包成jar文件

一、直接记事本编写Java程序并编译运行 
import java.util.List;
import java.util.ArrayList;
import java.lang.String;
public class Test{
 
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        String a1 = "a1";
        String a2 = "a2";
        String a3 = "a3";
        list.add(a1);
        list.add(a2);
        list.add(a3);
 
        for(int i = 0; i<list.size(); i++){
            System.out.println(list.get(i));
        }
    }
}
编译运行:
C:\Users\wangzcn\Desktop>javac Test.java
 
C:\Users\wangzcn\Desktop>java Test
a1
a2
a3
 
C:\Users\wangzcn\Desktop>
 

二、直接记事本编写Java程序,并引入第三方jar
import com.wzc.print.CPrint;
public class Test{
 
    public static void main(String[] args) {
        System.out.println("Hello jar");
        CPrint.Print("[Cprint] Hello Java ");
    }
}
 
1、将需要用的jar文件和java程序拷贝到同一个文件目录下
 
2、进行编译,编译的命令:javac -cp print.jar Test.java
3、进行执行,执行的命令:java -cp .;print.jar Test
4、执行完之后在控制台输出:
C:\Users\ws\Desktop\Test>java -cp .;print.jar Test
Hello jar
[Cprint] Hello Java
 
 

三、手动将Java程序打包,直接演示带有应用第三方jar的Java程序
 
 
1、编写Java程序
package com.wzc.Test;  //要带有package
 
 
import com.wzc.print.CPrint;
public class Test{
 
    public static void main(String[] args) {
        System.out.println("Hello jar");
        CPrint.Print("[Cprint] Hello Java ");
    }
 
 
}
 
2、创建目录结构:
 
3、src 目录下的结构,是与package路径相一致,该目录结构下一会放.class文件 
Test\src\com\wzc\Test
 
4、lib目录下放Test.java 引入的第三方包:
 
5、现将print.jar 与Test.java文件放在同一目录下进行javac编译生成Test.class文件
C:\Users\ws\Desktop\Test>javac -cp print.jar Test.java
 
C:\Users\ws\Desktop\Test>
 
6、然后将生成的Test.class文件放入src/com/wzc/Test
 
 
7、最重要的一步是编写manifest.mf 文件,放在src/下
Manifest-Version: 1.0                //版本号
Class-Path: ../lib/print.jar          // 第三发jar包,每个之间都要用空格隔开, 包括第一个与Class-Path 关键字之间
main-class: com.wzc.Test.Test  //main方法路径,即 package路径加类名 ,注意main-class后有一个空格
                           //最后一定要空一行
这里要注意几点:
 
1、Class-Path: 和Main-Class: 后边都有一个空格,必须加上,否则会打包失败,错误提示为:Invalid header field;
 
2、假设我们的项目包含第三发jar,则需要创建一个lib目录,将第三发jar都放到lib目录下,并且在manifest.mf文件中指明lib路径,已经需要引用的jar包。否则将会出现“Exception in thread "main" java.lang.NoClassDefFoundError”的错误;
 
3、Main-Class后面是类的全地址,比如你的主文件是Test.java,文件里打包为package com.wzc.Test; 那么这里就写com.wzc.Test.Test,//切记这一点不要加.java后缀,主文件地址写错将会出现“找不到或无法加载主类”的错误;
 
4、写完Main-Class后一定要回车(即最后一行是空白行),让光标到下一行,这样你生成的jar包才能找到你的主class去运行,
 
否则将会出现“jar中没有主清单属性”的错误。
 
 
 
 
8、然后进入到src路径下,开始打包:
C:\Users\ws\Desktop\Test>cd src
 
C:\Users\ws\Desktop\Test\src>jar -cvfm Test.jar manifest.mf ./*
已添加清单
正在添加: com/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: com/wzc/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: com/wzc/Test/(输入 = 0) (输出 = 0)(存储了 0%)
正在添加: com/wzc/Test/Test.class(输入 = 527) (输出 = 342)(压缩了 35%)
正在添加: manifest.mf(输入 = 84) (输出 = 79)(压缩了 5%)
正在添加: manifest.mf.bak(输入 = 82) (输出 = 77)(压缩了 6%)
正在添加: test.jar(输入 = 111) (输出 = 65)(压缩了 41%)
C:\Users\ws\Desktop\Test\src>
 
9、执行成功后再src目录下多出来一个Test.jar
 
 
10、然后执行:
C:\Users\ws\Desktop\Test\src>java -jar test.jar
Hello jar
[Cprint] Hello Java
 
C:\Users\ws\Desktop\Test\src>
 
 
 
 
 
posted @ 2018-09-11 09:50  Actexpler  阅读(1553)  评论(0编辑  收藏  举报