我正在尝试为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应用程序,我应该只:
然而,这似乎还不够!
答案 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-编译器:强>
答案 1 :(得分:0)
尝试使用launch4j构建.exe。
你必须将你的项目导出为“runnable jar”(在eclipse中)。
在launch4j中,您选择了输出文件和输入文件。您甚至可以将JRE路径捆绑到它,或者设置最小/最大JRE版本。
答案 2 :(得分:-1)
什么是项目运行时java版本是32位?如果不是你需要使用32位jdk来构建项目。