学院首页>网络编程>JSP>windows中双击jar文件即可运行写法

windows中双击jar文件即可运行写法

作者: 来源:不详 添加时间:2006-5-25 20:28:48
 

下面通过一个例子来说明,这个例子包括2个java文件和一个mf文件:

文件1:Frame1.java

package testjar;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Frame1 extends JFrame {
  JPanel contentPane;
  BorderLayout borderLayout1 = new BorderLayout();

//Construct the frame
  public Frame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
   jbInit();
}
catch(Exception e) {
   e.printStackTrace();
}
  }

//Component initialization
  private void jbInit() throws Exception  {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");
  }

//Overridden so we can exit when window is closed
  protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
   System.exit(0);
}
  }
}

文件2:App.java

package testjar;

import javax.swing.UIManager;
import java.awt.*;

public class App {
  boolean packFrame = false;

//Construct the application
  public App() {
Frame1 frame = new Frame1();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
   frame.pack();
}
else {
   frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
   frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
   frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
  }

//Main method
  public static void main(String[] args) {
try {
   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch(Exception e) {
   e.printStackTrace();
}
new App();
  }
}

文件3:manif.mf

Main-Class: testjar.App

复制上述的三个文件到一个目录中,用命令行进入这个目录并执行 javac -d . *.java,此时会编译生成class文件,然后执行 jar -cvfm te.jar manif.mf  testjar,应该回生成一个名为te.jar的jar文件,双击它,就可以看到效果了!

?
站内搜索