Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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 1.8的jar创建捆绑应用程序_Java_Macos_Ant_Jar_Bundle - Fatal编程技术网

从需要Java 1.8的jar创建捆绑应用程序

从需要Java 1.8的jar创建捆绑应用程序,java,macos,ant,jar,bundle,Java,Macos,Ant,Jar,Bundle,我正在努力交付java应用程序。我用EclupseLuna编写了它,并设法导出了一个包含外部文件(图像)的jar。现在我有了一个来自Eclipse的ant build xml文件,我可以运行ant-buildfile projectANT.xml,只有在复制了包含所有外部图像的数据文件之后,我才能双击jar文件来执行它 现在我想创建一个Mac捆绑包,这样一个带有图标的project.app就可以添加到Dock中,并且可以包含java jdk(无需java安装)。我正在使用Java1.8 我试图从

我正在努力交付java应用程序。我用EclupseLuna编写了它,并设法导出了一个包含外部文件(图像)的jar。现在我有了一个来自Eclipse的ant build xml文件,我可以运行
ant-buildfile projectANT.xml
,只有在复制了包含所有外部图像的数据文件之后,我才能双击jar文件来执行它

现在我想创建一个Mac捆绑包,这样一个带有图标的project.app就可以添加到Dock中,并且可以包含java jdk(无需java安装)。我正在使用Java1.8

我试图从现有应用程序中获取一个捆绑包,并将我的jar放入其中(包括所有文件、jdk和其他所有内容),但我得到的
LSOpenURLsWithRole()失败,错误为-10810

然后我尝试使用JarBundler 2.3.1在ant lib文件夹中创建JarBundler,但我没有创建正确的ant文件,它总是会丢失一些未定义的属性,如:

Problem: failed to create task or type jarbundler
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
问题:无法创建任务或类型绑定器
原因:名称未定义。
措施:检查拼写。
操作:检查是否已声明任何自定义任务/类型。
措施:检查是否发生了任何/声明。
然后,我尝试从apple development tools 14.5.0版启动
Jar Bundler
,但它无法加载我的Jar文件(无错误。
Main class
中出现的任何东西,在选择它之后,按钮
Create Application
保持灰色,我无法点击它

我还试图从一个脚本中创建一个包,在这个脚本中我调用
java project.jar
,但似乎太旧了,无法在我的Mac OS/X(10.8.5)上运行


有什么建议吗?有没有一种简单的方法可以从Eclipse导出的jar中使用Java 1.8创建Java应用程序?

我认为您不能修改现有Mac捆绑包的内容,直觉告诉我,有安全功能可以防止这种情况,用恶意代码修改现有捆绑包太容易了。您需要开始返回您的ant任务并制作一个新的Mac包。 点击这个链接“”,你会发现它包含了一个奇妙的ant任务示例,并写下如何使用ant任务来完成这项任务

下面是他文章中的例子

 <target name="create-bundle" depends="clean">
    <bundleapp outputdirectory="${release.dir}"
        name="appName"
        displayname="displayName"
        identifier="com.your.app.Main"
        shortversion="0.1"
        icon="app.icns"
        copyright="Your Name"
        applicationCategory="public.app-category.utilities"
        mainclassname="com/your/app/Main"
    >
        <runtime dir="${env.JAVA_HOME}" />
        <!-- may want to also reference dependent jars using a classpath ref-->
        <classpath file="path/to/your/jar" />
        <option value="-Xdock:icon=Contents/Resources/youricon.icns"/>
        <option value="-Dapple.laf.useScreenMenuBar=true"/>
        <option value="-Dcom.apple.macos.use-file-dialog-packages=true"/>
        <option value="-Dcom.apple.macos.useScreenMenuBar=true"/>
        <option value="-Dapple.awt.application.name=appName"/>
        <option value="-Dcom.apple.smallTabs=true"/>

    </bundleapp>
</target>

确保您将捆绑包设置为使用Java1.8运行时打开
LSOpenURLsWithRole()失败,文件/Users/alberto/Code/woodskin/build/appName.app出现错误-10810。又一次。10810是什么意思?我在Google中找不到太多东西,看起来你就快到了。我想你可能需要将该软件包与java运行时关联起来;但请确保你的mac电脑上安装了java 1.8。java-version>java版本“1.8.0_11”
这意味着什么?这似乎与我以前遇到的问题相同..如果打开命令行并键入“java-version”“该命令打印出该终端中的java版本。你能更详细地描述一下你在哪里看到这个问题吗?@kayakMike Hi我有类似的问题,请看一看我的问题谢谢嗨,我也有同样的问题。你能分享你的解决方案吗?你找到什么了吗?我的问题是谢谢