不可能给用户是class文件,用户只会双击;
打jar包,需要使用到 jdk 的开发工具 jar.exe
c 归档文件:linux系统中的压缩文件;
v 输出详细的情况
f 文件名称
使用格式:
jar cvf jar文件的名字 class文件或者是文件夹
先编译 后打包
清单文件用来指定入口类,我们之前的代码没有指定入口类,所以无法双击运行;
打jar包要注意的事项:
1. 一个程序打完了jar之后 必须要在清单文件上指定入口类: 格式 Main-Class: 包名.类名
2. jar包双击运行仅对于图形化界面的程序起作用,对控制台的程序不起作用。
双击运行
jar文件的作用:
1. 方便用户快速运行一个项目。
2. 提供工具类以jar包的形式给别人使用。
如果使用jar包里面的类必须要先设置classpath路径。
jre = jvm+ 核心类库(就是sun公司写的class文件)
所以我们以后做程序提交给别人,或者是作为工具,都是以jar包提供给别人。
package myutil; public class MyArrays { public static String toString(int[] arr){ String result = ""; for(int i = 0 ; i < arr.length ; i++){ if(i==0){ result +="["+ arr[i]+","; }else if(i==arr.length-1){ result += arr[i]+"]"; }else{ result += arr[i]+","; } } return result; } }
import myutil.MyArrays; class Demo10 { public static void main(String[] args) { int[] arr = {5,1,3,6}; System.out.println(MyArrays.toString(arr)); } }
其实应该是提供一个jar文件供用户使用
但是要之前制定类文件的路径:如果使用jar包里面的类必须要先设置classpath路径。
set classpath-./util.jar 当前路径下的util.jar
classpath 不但java虚拟机起作用,并且对java编译器是起作用。
包:
java中的包就相当于windows文件夹。
包的作用:
1. 解决类名重复产生冲突的问题。
2. 便于软件版本的发布。
定义包的格式:
package 包名;
包名命名规范:包名全部小写。
包语句要注意的事项:
1. package语句必须位于java文件中中第一个语句。
2. 如果一个类加上了包语句,那么该类的完整类名就是: 包名.类名
3. 一个java文件只能有一个包语句。
问题: 每次编译的时候都需要自己创建一个文件夹,把对应 的class文件存储 到文件夹中。烦!!!
javac -d 指定类文件的存放路径 java源文件