创建一个独立的jar文件
我使用Netbeans构建了一个jar
文件,它在我的系统中运行良好。 但我想制作能够在所有系统中运行的jar
文件,它具有JRE,即使没有在该系统中设置classpath
,它也应该正常工作。
package circle; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; public class Circle { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { new Circle().createAndShowGUI(); } }); } private void createAndShowGUI() { JFrame f = new JFrame("Swing Paint Demo"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(new MyPanel()); f.pack(); f.setVisible(true); } class MyPanel extends JPanel { public MyPanel() { setBorder(BorderFactory.createLineBorder(Color.black)); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { startX=e.getX(); startY=e.getY(); } }); addMouseMotionListener(new MouseAdapter() { public void mouseDragged(MouseEvent e) { X=e.getX(); Y=e.getY(); repaint(); } }); } public Dimension getPreferredSize() { return new Dimension(250,200); } protected void paintComponent(Graphics g) { super.paintComponent(g); //g.setColor(Color.RED); //g.fillRect(squareX,squareY,squareW,squareH); g.setColor(Color.BLACK); g.drawOval(startX,startY,X-startX,Y-startY); g.fillOval(startX,startY,X-startX,Y-startY); } } private int startX,startY,X,Y; }
您可以使用ant
脚本来构建可运行的JAR。
在此示例中,项目的lib1.jar
依赖于两个库: lib1.jar
和lib2.jar
,它们使用具有指定属性的MANIFEST.MF
输出到bin
。
以下post简要说明了如何使用ANT创建可执行jar :
- 在使用Ant的新jar文件构建中包含外部jar文件
这篇文章解释了manifestclasspath任务如何帮助创建类路径清单条目(使可执行jar的构造更加健壮且不易出错):
- Ant – 如何在特定文件夹中获取所有文件的名称
最后一个更复杂的例子演示了在创建可执行jar时使用ivy来管理项目的第三方依赖项:
- 从default-template ant生成类路径时出错
您可以通过执行以下命令来创建JAR文件:
jar -c excel.jar MANIFEST.MF *.class
MANIFEST.MF文件应包含以下行:
Main-Class: createExcel
但请考虑以下提示:
有几种方法:
-
创建一个jar文件并将您的类(没有依赖项)放在那里。 使用一些工具(任何IDE都有它)来执行此操作并使用main函数指定类。 您也可以从命令行手动执行此操作。 当用户想要运行它时,他应该指定类路径,并且所有依赖项都应该在该类路径中。
-
创建相同的jar并创建.bat或.sh文件,在其中设置classpath并运行jar。
-
使用一些特殊工具创建跨平台安装程序(但好的工具不是免费的)。
请记住,Netbeans可以帮助你很多;)