一直知道编写完java程序之后javac 编译,然后java运行class文件。之后还可以将程序打包成jar包,也就是归档文件,第三方的类库不都是以jar包的形式出现的嘛,今天实践了一下还不是一下就成,说明还是有很多东西不清楚,也说明了实践的重要性,一个知识知道了并不代表你会了,你觉的会了不一定是真的会了。一些博客写出来的要经过自己 的验证。
闲话少说,开整。
首先写一个最最最简单的java程序:
public class JarTest {
public static void main(String[] args) {
System.out.println("Hello World I'm Jaring !");
}
}
然后javac JarTest.java 编译
然后java JarTest 运行,是没问题的。
下面就开是打包:
直接运行jar命令会得到如下的帮助:
用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...
选项包括:
如果有任何目录文件,则对其进行递归处理。
清单文件名、归档文件名和入口点名的指定顺序
与 "m"、"f" 和 "e" 标志的指定顺序相同。
示例 1:将两个类文件归档到一个名为 classes.jar 的归档文件中:
示例 2:使用现有的清单文件 "mymanifest" 并
然后我学习了这篇博客的文章:http://blog.sina.com.cn/s/blog_93d133c601013hdm.html
内容如下:
一、打包成一般的jar包
输入如下命令即可:
其中,“-C bin”实际上是告诉jar命令先cd到bin目录下,再在此目录执行没有参数“-C bin”的命令,等价于:
二、打包成可运行的jar包
要打包成可运行的jar包,有两种方法,一是手动创建MANIFEST.MF文件,并在其中指定主类;二是使用jar的-e参数指定可运行jar包的入口点(即main类的完全名称).
以Java源代码行数统计程序的打包为例,演示如何打包:
1. 手动创建MANIFEST.MF文件:
1)首先编辑MANIFEST.MF文件,内容如下:
说明:
2)使用jar命令进行打包:
2. 使用-e参数指定入口点:
执行如下命令即可:
方法二:使用Eclipse的Export功能:
一、打包成一般的jar包:
步骤如下:
二、打包成可运行的jar包
步骤如下:
具体步骤:
也就是说打包总的来说有两种方式自己动手java命令行,还有就是使用工具比如说eclipse。
我选择第一种。每一种又分为两种打成一般的jar包, 打成可以运行的jar包,显然果断后者呀~~~
ok,选择好了目的,又有两中选择,半自动和自动,当然选择自动,复制博主代码
在我的D:\java\javacodes 下面执行 jar -cvfe jarTest.java Main bin .
果然打包了,java -jar jarTest.jar 报错:“找不到或无法加载主类 Main”
百度一下:看到这篇文章:http://www.cnblogs.com/adolfmc/archive/2012/10/07/2713562.html
心急如焚也没怎么仔细看,我觉得就是路径呀 类名写的不对。
看了一下手动打包的方案,知道有一个配置文件。再仔细看文章恍然大悟,博主默认将jar打到bin目录里当然是不行的 ,而且我的类名也不是main呀!!!
所以修改我的打包命令:
jar -cvfe JarTest.jar ./(这里要写你的源代码的位置,要不就自己手动配置,你看这办把) .
运行 java -jar JarTest.java
"Hello World I'm Jaring !"
好了,究其原因还是基础不熟,对运行原理不清楚,对java命令行也不清楚。