Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用包含JRE的mac os(使用windows或linux)从jar创建可执行文件_Java_Windows_Macos_Executable Jar - Fatal编程技术网

Java 如何使用包含JRE的mac os(使用windows或linux)从jar创建可执行文件

Java 如何使用包含JRE的mac os(使用windows或linux)从jar创建可执行文件,java,windows,macos,executable-jar,Java,Windows,Macos,Executable Jar,各位晚上好 我一直在寻找一个简单而不受反对的答案来回答我的问题: 我已经在我的电脑(Windows)上创建了一个java程序。从这个程序中,我创建了一个可运行的jar,它可以在我的计算机上完美地运行。 现在,我想将jar转换为MAC OS的可运行文件格式,并在我的应用程序中包含一个JRE(这样我的客户机就不必在他的每台计算机上安装java) 经过一些研究,我发现唯一的解决方案是太旧(无法使用)或非常复杂(并且没有足够的文档) 我听说过jar2app,但关于JRE的部分,您必须包括的内容并不十分清

各位晚上好

我一直在寻找一个简单而不受反对的答案来回答我的问题:

我已经在我的电脑(Windows)上创建了一个java程序。从这个程序中,我创建了一个可运行的jar,它可以在我的计算机上完美地运行。 现在,我想将jar转换为MAC OS的可运行文件格式,并在我的应用程序中包含一个JRE(这样我的客户机就不必在他的每台计算机上安装java)

经过一些研究,我发现唯一的解决方案是太旧(无法使用)或非常复杂(并且没有足够的文档)

我听说过jar2app,但关于JRE的部分,您必须包括的内容并不十分清楚。很多人也用launch4j来回答,但它只创建Windows可执行文件


我有Linux和Windows,但不能访问MAC OS计算机来开发任何东西(只是测试)。我正在使用java 1.8。

下面给出的是一个摘录,我希望它也适用于java-8:

由于此示例使用
JAVA\u HOME
定义了运行时子元素,因此请确保为您的环境正确配置了它。例如,在
.bashrc文件
中,定义
JAVA\u HOME
,如下所示:

export JAVA_HOME=/usr/libexec/java_home
使用以下步骤修改项目目录顶部的
build.xml
文件:

  • 指定名为env的环境属性:

  • 在创建捆绑包的目标中,使用env属性指定JRE在系统上的位置:

  • 生成的
    build.xml
    文件应如下所示:

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="ButtonDemo" default="default" basedir=".">
        <import file="nbproject/build-impl.xml"/>
    
    <property environment="env" />
    
    <taskdef name="bundleapp"
             classname="com.oracle.appbundler.AppBundlerTask"
             classpath="lib/appbundler-1.0ea.jar" />
    
    <target name="bundle-buttonDemo">
        <bundleapp outputdirectory="dist"
            name="ButtonDemo"
            displayname="Button Demo"
            identifier="components.ButtonDemo"
            mainclassname="components.ButtonDemo">
            <runtime dir="${env.JAVA_HOME}" />
            <classpath file="dist/ButtonDemo.jar" />
        </bundleapp>
    </target>
    
    </project>
    
    
    
    使用
    ant bundle ButtonDemo
    命令创建新版本的
    ButtonDemo.app
    。最终版本包括应用程序包中的JRE。您可以通过检查应用程序包内的Contents/PlugIns目录来确认这一点。

    考虑将其用于非模块化应用程序。或者如果它是模块化的,就有了。github页面处于活动状态,根据我的经验,问题会得到及时解决。它为Windows、Linux和OSX构建

    即使它使用了最新的Java特性
    jpackage
    ,您仍然可以在较新的JDK版本中使用
    jpackage
    的同时,在较早的JDK版本中编译代码


    我最近更新使用它,欢迎您查看(如果您这样做,请提供反馈)。该插件网站上还有其他例子。

    VassiliKan-如果其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区。公认的答案有助于未来的访问者自信地使用解决方案。要进行此操作,您需要单击大复选标记(✓) 在答案的左边。注意:一个问题只能接受一个答案。但是,一旦你有15+个信誉点,你可以根据自己的意愿选择任意多个答案。