下面通過(guò)一個(gè)例子來(lái)說(shuō)明,這個(gè)例子包括2個(gè)java文件和一個(gè)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
復(fù)制上述的三個(gè)文件到一個(gè)目錄中,用命令行進(jìn)入這個(gè)目錄并執(zhí)行 javac -d . *.java,此時(shí)會(huì)編譯生成class文件,然后執(zhí)行 jar -cvfm te.jar manif.mf testjar,應(yīng)該回生成一個(gè)名為te.jar的jar文件,雙擊它,就可以看到效果了!
新聞熱點(diǎn)
疑難解答
圖片精選