捆绑适用于 Mac 的 Java 7 .jar

2023-11-27

我创建了一个需要 Java 7 的 .jar。我有 Java 7(JDK 和 JRE),并且可以双击运行该 .jar。但是,我想将其打包到应用程序中。

我尝试过的:使用Apple的Jar Bundler工具,我成功创建了一个应用程序;但是,当我运行它时,它很快就会在扩展坞中出现并消失。当我运行内部文件时JavaApplicationStub从终端,我得到:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/lcmmun/kiosk/gui/Kiosk : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:247)
    at apple.launcher.LaunchRunner.loadMainMethod(LaunchRunner.java:56)
    at apple.launcher.LaunchRunner.run(LaunchRunner.java:112)
    at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51)
    at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)

其中,根据“unsupportedclassversionerror 不支持的major.minor版本51.0无法加载类“ 表示我没有安装 Java 7。但我安装了。

所以我的假设是JavaApplicationStub与 Java 7 不兼容。

我也听说过ANT 任务完成同样的任务,但似乎太复杂了,而且我不知道如何使用ANT。不过,如果这确实是解决方案,我很乐意学习。

EDIT: 我现在也尝试过 Eclipse 的导出 > 其他 > Mac OS 应用程序包。这也失败了。

我正在运行 10.8 Mountain Lion,64 位。


Issue

你的假设绝对正确,苹果JavaApplicationStub位于这里:

  • System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub

仅与 Apple 自己为 Mac OS X 构建的 Java 包兼容。

Reason

Apple 正在停止使用自己的 Java 系统包,并在淡出过程中仅支持 Java 6。 Oracle 现在接管并从 10.7.3 开始为 Mac OS X 提供 Java 7。苹果甚至停止了开发者工具,例如Jar Bundler.app没有任何通知,正如您在这篇文章中看到的:

  • 为什么 Jar Bundler 在 Mac OS X Mountain Lion 10.8.2 中消失了

有些人甚至拼命尝试手动增加JVMVersion财产价值在Info.plist,由苹果阅读JavaApplicationStub,来自记录的文字1.6 or 1.6+未记录的文字,例如1.7。这也不起作用,即使您已经安装了 Oracles Java 7 Package,您最终也会看到这样的对话框。

UserNotificationCenter

因此,您可能会发现已退役的 Apple Java 6 世界和未来的 Oracle Java 7 世界之间存在其他不一致之处。

Solution

要构建基于 Oracles Java 7 的应用程序包,您需要使用 Oracles应用程序捆绑器包含 Oracle 的 Ant 任务JavaAppLauncher。该版本现在仅支持适用于 Mac OS X 的 Oracle Java 7,并且不向后兼容 Apple 自己的 Java 系统包。

现在的好消息是,您可以将 Oracles Java 7 JRE 内联到您的应用程序包中。它将包含在目录中

  • Contents/PlugIns

例如在应用程序包中

  • Contents/PlugIns/jdk1.7.0_17.jdk

这意味着您的应用程序包是完全独立的,可供 App Store 部署。

但你不必这样做。您还可以依赖已安装的 Oracle Java 7 包。

要获得更详细的答案,您还应该查看:

  • 应用程序在 Mac OS X 上使用 Apple 的 Java 6 而不是 Oracle 的 Java 7?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

捆绑适用于 Mac 的 Java 7 .jar 的相关文章

  • 为什么连接器没有使用我的 Tomcat 6 执行程序线程池?

    我的 server xml 如下所示
  • 没有编辑菜单的对话框中的 Cocoa 键盘快捷键

    我有一个LSUIElement显示菜单栏状态项的应用程序 应用程序可以显示包含文本字段的对话窗口 如果用户右键单击 按住 Control 键单击文本字段 则会出现一个菜单 允许剪切 复制 粘贴等 但是 标准 Command X Comman
  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • 将 Swing 集成到简单的文本冒险游戏中

    我对 Java 中的一些中级概念相当陌生 最近 我制作了一款名为 DazzleQuest 的文本冒险游戏 它完全在开发者控制台 终端中运行 它涉及到我的朋友作为角色 所以我想向他们展示它 并通过将命令行的功能和控制台的输出转移到一个简单的
  • rmi类找不到异常

    我使用 java rmi 编写了一个简单的项目并导出到可执行 jar 文件 当我尝试运行它时 有时会出现异常 有时会起作用 当我指定 Djava rmi server codebase file serverClasses 时 它似乎没有正
  • 当Java中set已经是原子的时候,为什么我们还需要compareAndSet呢?

    因为原子意味着线程安全 当 set 本身在java中是原子和线程安全的时候 我们什么时候使用compareAndSet 举例来说 我想以原子方式设置一个变量 以便每个其他线程都可以看到它 但我希望以线程安全的方式设置该变量 我可以简单地将其
  • Runtime.getRuntime().exec(cmd) 挂起

    我正在执行一个命令 该命令返回文件的修订号 文件名 但如果执行命令时出现问题 应用程序就会挂起 我可以做什么来避免这种情况 请在下面找到我的代码 String cmd cmd C si viewhistory fields revision
  • 无法从 PDFA1-a 格式文档中提取图像

    我正在使用以下代码从 PDFA1 a 格式的 pdf 中提取图像 但我无法获取图像 List
  • 为什么在大多数开源java项目中局部变量没有被声明为final?

    如果我查看 OpenJDK Hibernate 或 Apache 中的 java 源代码 我还没有看到任何声明为 Final 的局部变量 这表明一些最广泛使用的 java 软件库的开发人员 不要相信final关键字可以提高可读性 不相信它会
  • 如何在 WebSphere Liberty Batch 中配置事务超时?

    的作用是什么javax transaction global timeout 我是否需要实施检查点 超时 中的方法检查点算法 服务器配置级别有什么东西吗 它如何与应用程序级别的设置进行交互 2016年12月2日编辑 重新设计并解释了为应用程
  • BODMAS系统的加法和减法

    我一直在构建一个简单的公式计算器 但一直被加法和减法困扰 正如您应该知道的 在计算方程时 您遵循优先级算术规则 即括号 顺序 幂函数 除法 乘法 加法和减法 问题是加法和减法具有相同的优先级 因此您可以从左到右阅读 到目前为止 这是我的代码
  • 错误:类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter

    我已尝试一切方法来消除此错误 但它不断出现 Class kotlin reflect jvm internal FunctionCaller FieldSetter can not access a member of class com
  • GSSAPI 中的 javax.naming.AuthenticationException

    我正在尝试使用 JAVA GSSAPI 执行 NTLM 绑定 我收到此错误 javax naming AuthenticationException GSSAPI 根异常是 javax security sasl SaslException
  • 何时对字符串文字使用 intern()

    我看到很多这样的遗留代码 class A public static final String CONSTANT value intern 我看不出使用 intern 的任何原因 因为在 Javadoc 中可以读到 所有文字字符串和字符串值
  • CXF 增加连接池大小而不更改 http.maxConnections

    最近我被要求将 CXF 配置为与我们旧的 XFire 服务相同的参数 这些参数之一是Keep Alive timeout 60 max 20 然而 我做了一些研究 看来 CXF 使用 JVMHttpURLConnection引擎盖下的对象
  • 安卓独立包

    我有一个很大的 UI 大约 20 25 个屏幕 我应该如何组织我的代码 我应该按功能分成不同的包吗 我是否应该为所有 UI 类创建一个包 然后创建子包进行组织 或者我不应该创建单独的包并组织到文件夹中 任何帮助将不胜感激 当您创建文件夹时
  • 枚举

    我试图拥有一组扩展通用接口的枚举 例如 interface Fooable void someCommonMethod enum E1 implements Fooable some enumuerations and a definiti
  • 避免加密和编码的 URL 字符串中的换行符

    我正在尝试实现一个简单的字符串编码器来混淆 URL 字符串的某些部分 以防止它们被用户弄乱 我使用的代码几乎与示例中的相同JCA指南 http docs oracle com javase 6 docs technotes guides s
  • 在android中测量不规则多边形的面积

    我正在开发一个应用程序 在其中我在地图上绘制多边形 并且我使用的地图不是谷歌 它的Mapsforge开源离线地图库 我可以通过将地理点转换为像素点来轻松在地图上绘制多边形 但在这里我想发现是不规则的多边形 为此我做了很多尝试 但它让我失败了
  • git jenkins 中未找到存储库

    我正在使用 jenkins 2 64 并安装了最新的插件 我试图在 jenkins 中设置 git 存储库并给出凭据 但给出错误无法连接存储库 状态代码为 128 Cloning repository https github com so

随机推荐

  • 使用资产中的 Uri 或文件创建 MediaPlayer 时出错

    我将song mp3复制到项目的资产目录中并编写了以下代码 private MediaPlayer mp Uri uri Uri parse file android asset song mp3 mp MediaPlayer create
  • 具有应用内区域设置更改的 Android App Bundle

    当我需要从应用程序本身内部更改应用程序区域设置 即在应用程序内部进行语言更改设置 时 我遇到了 AAB 问题 问题是 AAB 只为我提供了我的设备语言资源 例如 我的设备安装了英语和法语 因此 AAb 只为我提供英语和法语的资源 但从应用程
  • Java ScheduledExecutorService BAD 精度

    您好 我编写了一个简单的程序来测试 ScheduledExecutorService schedule 函数的精度 该测试设置延迟并检查有效等待时间 该测试在运行 Linux 3 8 x86 64 的 i7 机器上执行 同时安装 OpenJ
  • 如何使用Java解码html代码? [复制]

    这个问题在这里已经有答案了 可能的重复 Java 如何像 HttpUtility HtmlDecode 一样解码 Java 中的 HTML 字符实体 我需要提取段落 例如title在 StackOverflow 中 html file 我可
  • R 使用 %in% 从字符向量中删除停用词

    我有一个包含字符串的数据框 我想从中删除停用词 我试图避免使用tm打包 因为它是一个大数据集并且tm似乎跑得有点慢 我正在使用tm stopword字典 library plyr library tm stopWords lt stopwo
  • 可变参数宏和尾随逗号

    我正在尝试用 C 语言进行面向对象 并希望有一个用于表示法的语法糖宏 object gt vtable gt method object arg1 arg2 into send object method arg1 arg2 不幸的是 当一
  • Swagger 架构错误不应具有附加属性

    我正在尝试创建 swagger json 并尝试检查它的有效性http editor swagger io 验证 json 后 上述编辑器给出以下错误 Schema error should NOT have additional prop
  • 获取可可打开的窗口列表

    我是 Cocoa 的新手 我想知道如何获取所有打开的窗口的列表 我不是在谈论运行程序 因为这将是一项简单的任务 我想列出窗口 例如 如果我运行预览并打开了 10 个 pdf 我的程序应该能够检索包含所有这些 pdf 的列表 我还想知道是否有
  • @cuda.jit 和 @jit(target='gpu') 之间的区别

    我有一个关于使用 Continuum 的 Accelerate 和 numba 包中的 Python CUDA 库的问题 正在使用装饰器 jit with target gpu与 cuda jit 不 它们不一样 尽管 PTX 到汇编器的最
  • 在 GridView Yii2 中排序和过滤数据,其中列不在数据库中

    如果我在 db 中有 2 个字段 概率和影响 并且我需要 GridView 中的一列将这两个字段相乘 我设法将其添加到那里 例如 attribute gt priority format gt raw value gt function m
  • Flutter - 翻卡效果

    我正在尝试制作一张翻转卡 获得效果的最佳方法是什么 我会用一个AnimatedBuilder or AnimatedWidget激活 a 的值Transform小部件 ScaleTransition几乎可以为你做到这一点 但它会在两个方向上
  • 在 Android 2.1 中使用 getRotationMatrix 和 getOrientation

    我已经被这个问题困扰太久了 此代码应输出加速度计的 dx dy dz 以及 dx 的运行总计 它还应该输出方位角 俯仰角和横滚角 我已使用此处提供的信息 但无济于事 此代码无法正确输出俯仰角 方位角或滚转角 它分别为最后三个文本视图输出 0
  • 键盘向上和向下箭头

    我有一个自动完成搜索 通过输入几个字符 它将显示与输入的字符相匹配的所有名称 我使用 DIV 标记在 jsp 中填充这些数据 通过使用鼠标 我可以选择名称 但我想使用键盘上下箭头选择要选择的 DIV 标签中的名称 任何人都可以帮我解决这个问
  • 生成带数字签名的 PDF

    是否可以在 PHP 中生成带有数字签名的 PDF 文件 首选开源解决方案 TCPDF从5 5 001版本 2010 06 23发布 开始可以对生成的PDF文档进行签名 它还可以将透明签名矩形字段放置在任何位图 文本上 因此单击签名字段会弹出
  • MVC .NET 中的 URL 参数编码

    我在 MVC 4 NET 应用程序中有一个控制器 它从 URL 接收字符串作为参数 这来自重定向到控制器的 aspx 页面Route config 如果我在客户端中发送该参数值 fwdgerhb bhrth ftrgbhrt 我在服务器上得
  • 使用 phantomjs 将网页渲染为 pdf 时,如何自动调整 viewportSize 以获取整个页面宽度?

    我可以使用以下参数正确指定页面大小 var page require webpage create page paperSize format Letter orientation Portrait 我面临的挑战是 我无法让我的网页占据纸张
  • 常见 Lisp 类型综合指南

    也许这个问题太笼统 但我会尝试 有没有关于 Common Lisp 类型的综合指南 我对这个问题有点困惑 为什么在中声明非原始类型make array s element type被提升为t 是否有可能对实际声明的类型进行编译时或运行时检查
  • UDP端口开放检查

    检查同一台计算机上的 UDP 端口是否打开的最佳方法是什么 我有端口号7525UDP如果它是打开的 我想绑定它 我正在使用这段代码 while true try socket bind catch Exception ex MessageB
  • 'glCreateShader' 未在此范围内声明?

    为什么我会收到这些错误 error GL VERTEX SHADER was not declared in this scope error glCreateShader was not declared in this scope Co
  • 捆绑适用于 Mac 的 Java 7 .jar

    我创建了一个需要 Java 7 的 jar 我有 Java 7 JDK 和 JRE 并且可以双击运行该 jar 但是 我想将其打包到应用程序中 我尝试过的 使用Apple的Jar Bundler工具 我成功创建了一个应用程序 但是 当我运行