当前位置: 首页 > 知识库问答 >
问题:

从需要1.8Javajar创建捆绑应用

卫高谊
2023-03-14

我正在努力与java应用程序的交付。我用Eclupse Luna编写了它,并设法导出了一个带有外部文件(图像)的jar。因此,现在我有一个来自Eclipse的ant build xml文件,我可以运行ant-Buildfile project ectANT. xml,并且我可以双击jar文件以执行它,只有在复制了所有外部映像的数据文件之后。

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

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

然后我尝试使用JarBundler 2.3。1在ant lib文件夹中创建jar绑定器,但我没有创建正确的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.

然后我试图启动Jar Bundler从苹果开发工具版本14.5.0但它不能加载我的jar文件(没有错误...保持灰色,我不能点击它。

我还尝试从调用java项目的脚本中创建一个包。jar在这篇博文之后,但似乎太旧了,在我的Mac OS/X(10.8.5)上不起作用。

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

共有1个答案

冯皓
2023-03-14

我认为你不能修改现有Mac捆绑包的内容,直觉告诉我,有安全功能可以防止这种情况,用恶意代码修改现有捆绑包太容易了。您需要重新开始ant任务,并创建一个新的Mac包。按照这个链接“BuildMacOSXJava应用程序”,你会发现它包含了一个奇妙的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>

确保您将bundle设置为使用java 1.8运行时打开https://apple.stackexchange.com/a/130692

 类似资料:
  • 我目前正在创建一个时间线卡片,方式如下: 这将在时间线中创建一张活卡。我尝试添加另一个相同的标签,以为它会把他们捆绑在一起,最近的将是捆绑封面卡,但它没有做到这一点。 我看了一下文档,我能找到的只是如何使用镜像API来实现它。那么有没有一种方法可以使用GDK创建捆绑卡呢?还是只有通过镜像API才可用?多谢了。

  • 问题内容: 如何从jar库创建OSGi捆绑包? 问题答案: 如果您使用的是eclipse:有一个向导。 它允许您选择许多jar库,并创建一个包含这些jar的插件项目(即OSGi捆绑包)。 你可以在这里找到它:

  • 问题内容: 我正在使用Ant构建一些Java项目。在某些情况下,我有一个lib/目录,该目录包含JAR文件形式的外部依赖项。 在构建过程中,我通过将目录中zipfileset每个jar的a添加到bundlejar文件中,创建了一个捆绑jar,其中包含项目代码以及相关性lib/。 问题是,每次添加一个jar或更改名称时,我都需要记住要更新build.xml文,因为我找不到zipfilesets一种自

  • 问题内容: 我想在Symfony中启动一个新的3.3项目,并像往常一样开始: 1.)创建新项目: 2.)创建一个新的捆绑包:(Paul / ArtBundle,yml,src /) 然后我运行本地服务器,当我打开127.0.0.1:8000时,我得到了一条漂亮的消息: (1/1)ClassNotFoundException 尝试从命名空间“ Paul \ ArtBundle”加载类“ PaulAr

  • 当我尝试使用Xcode向商店提交我的应用程序时,我总是遇到这个错误: 错误ITMS-90475:“包无效。iPad多任务支持需要在包'com.companyname.appname'中启动情节提要。” 有人知道这个错误的真正含义吗?

  • 我目前正在使用lit html开发一个Typescript应用程序。我希望将单个javascript文件中的所有javascript文件最小化。使用VS代码作为IDE。 我一直在考虑各种选择——汇总。js是一个选项,但我无法解决如何将多个ts文件捆绑到一个js文件中,将其最小化,并确保正确处理模块。 有没有使用rollup.js的例子来做这种可用的或其他可用的替代方案?