把类文件打包成一个jar文件。
1 创建JAR文件
jar cvf JARFileName File1 File2 . . .
jar cvf CalculatorClasses.jar *.class icon.gif
jar options File1 File2 . . .
2 清单文件
3 可执行JAR文件
jar cvfe MyProgram.jar com.mycompany.mypkg.MainAppClass files to add
//也可以在清单文件中指定main方法
Main-Class: com.mycompany.mypkg.MainAppClass
java -jar MyProgram.jar
4 资源
- 图像和声音文件
- 文本文件
- 二进制文件
import java.awt.*;
import java.io.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
/**
* @version 1.41 2015-06-12
* @author Cay Horstmann
*/
public class ResourceTest
{
public static void main(String[] args)
{
EventQueue.invokeLater(() -> {
JFrame frame = new ResourceTestFrame();
frame.setTitle("ResourceTest");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
});
}
}
/**
* A frame that loads image and text resources.
*/
class ResourceTestFrame extends JFrame
{
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 300;
public ResourceTestFrame()
{
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
URL aboutURL = getClass().getResource("about.gif");
Image img = new ImageIcon(aboutURL).getImage();
setIconImage(img);
JTextArea textArea = new JTextArea();
InputStream stream = getClass().getResourceAsStream("about.txt");
try (Scanner in = new Scanner(stream, "UTF-8"))
{
while (in.hasNext())
textArea.append(in.nextLine() + "\n");
}
add(textArea);
}
}
5 密封
在清单文件中加入Sealed:true即可密封。