无法在WinXP 32位上为JavaFX应用程序构建本机包

时间:2015-10-28 09:01:01

标签: java javafx javafx-2 javafx-8

我正在尝试为WinXP 32位系统构建JavaFX应用程序(本机包)。

我部署了一个WinXP 32位虚拟机。还安装了JDK(jdk-8u65-windows-i586)和InnoSetup以及Netbeans 8.0.2 ......

然而,当我尝试打包为.EXE应用程序时,我收到:

public partial class OtherForm : Form
{
    DataTable table;
    public OtherForm(DataTable value)
    {
        InitializeComponent();

        //get passed data and put it in some member variable for next usages
        table = value;

        //Bind data to other grid or do other things here or in Form Load event
        this.dataGridView1.DataSource = table;
    }
}

我的设置好吗?我错过了什么吗?

我认为为了构建WinXP32的JavaFX应用程序,我应该只:

  • 在类似的(WinXP32)计算机上构建它
  • 使用X86 JDK版

然而,这似乎还不够!

3 个答案:

答案 0 :(得分:1)

问题听起来像是在尝试将jar存档(或所有.class文件)打包到exe存档中。 我的答案是基于这个假设,并试图从nextcard解释和扩展答案。如果我误解了你的问题,我很抱歉。另外,我很抱歉我的链接格式错误。我不允许发布多个链接。只要我有十个声誉,我就会纠正。

Java不是一种编译语言。这意味着.class文件或jar存档不可执行。每个Java程序都需要使用JIT(即时编译器)启动,通常称为java。 如果你点击它们,系统就可以执行jar档案,因为它知道它必须在文件名之前添加“java -jar”才能做某事。

如果要将java程序作为系统依赖可执行文件,则必须使用AOT(Ahead of time)编译器。那些产生实际字节码的系统可以在java程序正常运行的虚拟机上独立解释。另一种可能性是使用launch4j包装jar(已经被nextcard提到)

<强>包装

<强> AOT-编译器:

  • vmkit.llvm.org
  • gcc.gnu.org/java /
  • www.excelsiorjet.com

答案 1 :(得分:0)

尝试使用launch4j构建.exe。

你必须将你的项目导出为“runnable jar”(在eclipse中)。

在launch4j中,您选择了输出文件和输入文件。您甚至可以将JRE路径捆绑到它,或者设置最小/最大JRE版本。

答案 2 :(得分:-1)

什么是项目运行时java版本是32位?如果不是你需要使用32位jdk来构建项目。