[Java学习]Java打包成jar

Java程序编辑好了,编译成了class文件,可能会有很多,不便于发布。可以把这些class文件连同他们的资源文件一起打包成一个jar文件。这个文件便于保存和发布。


首先写了个简单的输出文字的程序:(MakeJar.java)

//---MakeJar.java
//---Learn to make a jar file.
//---Output a String "This jar file is running!"
package makejar;
public class MakeJar
{
	public static void main(String[] args)
	{
		System.out.println("This jar file is running!");
	}
}


编译MakeJar:

              javac MakeJar.java


建立一个文件夹makejar,将得到的MakeJar.class 文件放到里面。

测试一下这个class文件:在root文件夹中,命令:      java makejar/MakeJar

就可以运行了。如果直接在makejar文件夹中运行    java MakeJar     就会报错的。

Exception in thread "main" java.lang.NoClassDefFoundError: MakeJar (wrong name:
makejar/MakeJar)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:792)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14
2)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

还有一个用来指示jar文件运行时找到main类的信息文件:(MakeJar.mf)【这个文件最后一行要是一个以回车结尾的行,索性就多打几个回车 大笑

Main-Class: makejar.MakeJar



文件结构是这样的:

root

 |-------makejar

                  |-------------MakeJar.class

|--------MakeJar.java

|--------MakeJar.mf


【打包开始】

在MakeJar.java所在的文件夹root下,命令:  

      jar cvfm MakeJar.jar MakeJar.mf makejar

这样就可以打包成一个MakeJar.jar 文件了。运行的时候可以    java -jar MakeJar.jar


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值