如果对于编译有编码要求的 应该使用-encoding参数指明编码方式:javac -encoding UTF-8 XX.java
一个package中,两个java文件中,一个有main函数,一个没有,两者之间有调用关系
ThreadTest.java
package common;
import javax.swing.JFrame;
public class ThreadTest {
public static void main(String[] args) {
DD.to();
JFrame frame;
frame = new JFrame();
frame.setSize(500,DD.size());
frame.setLocation(300,300);
frame.setVisible(true);
}
}
DD.java
package common;
/**
* Created by shao on 2016/11/8.
*/
public class DD {
public static void to(){
System.out.println("shaofeifei is a master");
}
public static int size(){
return 1000;
}
}
刚开始文件情况为:
执行步骤:
结果:
就是这样了。
将my.jar通过2345好压打开看为:
多了一个META-INF文件,打开发现:
打开MANIFEST.MF文件
前面讲的都是一个package包中的,现在引入多个包
项目结构
文件结构
ThreadTest.java
package common;
import javax.swing.JFrame;
import common.ff.DD;
import common.rr.GG;
public class ThreadTest {
public static void main(String[] args) {
DD.to();
JFrame frame;
frame = new JFrame();
frame.setSize(GG.widthSize(), DD.heightSize());
frame.setLocation(300, 300);
frame.setVisible(true);
}
}
DD.java
package common.ff;
import common.rr.GG;
/**
* Created by shao on 2016/11/8.
*/
public class DD {
public static void to() {
System.out.println("shaofeifei is a master");
}
public static int heightSize() {
return GG.widthSize()/2;
}
public static void main(String args[]) {
for (int i = 0; i < 5; i++) {
System.out.println("--------------------");
}
System.out.println("master of masters");
for (int i = 0; i < 5; i++) {
System.out.println("--------------------");
}
}
}
GG.java
package common.rr;
/**
* Created by shao on 2016/11/8.
*/
public class GG {
public static int widthSize() {
return 1000;
}
}
接下来有两种编译方法,一种是直接编译ThreadTest.java,不写代码单独编译DD.java,GG.java
这就是在src目录中,按顺序从最基础的开始编译这些java文件,运行之后结果为:(多java文件的时候,一定要选择操作路径在所有文件的外面,如果不引入外部的jar包,则不用-classpath ,否则引用javac -classpath jar包路径 sourcesfiles)
这时候大家都编译好了,
一种简单的方法就是把整个common文件夹变成一个jar包,也可以只提取class文件,把java文件删除之后再把common文件夹变成一个jar包
运行jar命令之后:
运行jar包结果:
这时候的my.jar内部结构为:
这样做的话jar包中有很多没用的java文件。所以我们还可以将java文件删除后再打包成jar格式