将具有多个类的netbeans java应用程序转换为.exe

时间:2015-07-01 10:51:32

标签: java netbeans exe

我在netbeans上创建了一个java应用程序。我曾尝试在exe4j和launch4j等各种软件的帮助下将其转换为.exe。但问题是,这些软件只需要1个主类。我的应用程序有3.因此我的应用程序没有连接到数据库!

2 个答案:

答案 0 :(得分:1)

我个人使用exe4j

在exe4j中,当你继续向导时,你会得到这种窗口

enter image description here

然后你可以点击绿色+按钮添加你可激发的jar文件,在genaral区域你应该指定主类。在这个例子test

假设您的应用程序名称为newMDIApplication

在netbeans中你有3个班级

 newMDIApplication.class
 newJframe.class
 newJframe2.class

当你的应用程序启动newMDIApplication.class的主要方法被执行时。所以当你制作一个jar文件时,你应该填写它的主要方法。

在那个exe4j窗口中,你应该选择newMDIApplication作为主类

答案 1 :(得分:1)

你的问题有点混乱.. Mainclass表示包含 public static void main(String [] args)

的类

function void main 是程序的启动。您可以在 void main ..

中初始化您的程序 执行开始时,JVM将调用

void main 函数。 你不能使用多个 void mains ,因为JVM与它混淆了lol

修改

现在我明白了你的问题

首先从所有gui类中删除此代码..

public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new NewJFrame().setVisible(true);
        }
    });
}

在所有Gui类的类构造函数中查找并添加此代码,如果您的类名是NewJFrame,那么您的类Constructor就是这样

 public NewJFrame() {
        initComponents();
        setVisible(true);; // add this code

    }

如果您只有Gui类..请添加一个Java类并在其上放置 public static void main 函数

Class AppleClass{

//导入你的classess

//This is your main class

public static void main(String[] a){ 

//This function will execute first on program startup

//put your look and feel code here (optional, codes given below)

//Here you can put codes for which  GUI you need to show first

}

}

您可以通过创建其对象

来显示GUI

<强>语法

  

ClassName objectname = new ClassName();

ClassName - GUI类的名称;

objectname - 任何名称

例如:

  

NewJFrame abc = new NewJFrame();

外观代码

//  write it inside public static void main


 try {
            UIManager.setLookAndFeel(new NimbusLookAndFeel());
        } catch (UnsupportedLookAndFeelException ex) {
            Logger.getLogger(JavaApplication10.class.getName()).log(Level.SEVERE, null, ex);
        }

确保导入这些类

  • import java.util.logging.Level;
  • import java.util.logging.Logger;
  • import javax.swing.UIManager;进口
  • javax.swing.UnsupportedLookAndFeelException;进口
  • javax.swing.plaf.nimbus.NimbusLookAndFeel;

编辑3 - 转换为exe

  • 构建可执行jar,转到运行菜单 - &gt;清理和构建项目(项目名称)
  • 下载Launch4j并运行
  • 设置输出exe文件位置
  • 设置可执行Jar位置(可以在Project目录中的dist文件夹中找到它)
  • 转到“类路径”标签取消选中“自定义路径”
  • 转到“单一继承”标签,取消选中“仅允许一个......”
  • 转到“JRE”标签设置最小版本-1.5.0_45,最大版本-1.8.0_45
  • 点击齿轮图标并保存配置
  • 点击运行按钮