我创建了一个需要 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 unsupported major.minor version 51.0 unable to load class”表示我没有安装Java 7.但是我愿意.

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

我也听说过an ANT task完成同样的任务,但这似乎太复杂了,我不知道如何使用ANT.如果这真的是解决办法,那我很乐意学习.

编辑:我现在也试过Eclipse的Export>其他> Mac OS应用程序包.这也失败了.

我跑了10.8山狮,64位.

解决方法

问题

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

>系统/库/框架/ JavaVM.framework / Resources / MacOS / JavaApplicationStub

仅适用于苹果自己为Mac OS X构建的Java Packages.

原因

苹果公司正在停止自己的Java系统软件包,并且只在其淡出进程中支持Java 6. Oracle已经从10.7.3开始,为Mac OS X提供了Java 7.苹果甚至停止像Jar Bundler.app这样的开发工具,没有任何通知,你可以在这篇文章中看到:

> Why is Jar Bundler gone in Mac OS X Mountain Lion 10.8.2

有些人甚至拼命地尝试将Info.plist中的JVMVersion属性值(由Apple JavaApplicationStub读取)从已记录的文字1.6或1.6增加到1.7的无证文字.这也不会奏效,即使您已经安装了Oracles Java 7软件包,您也可以使用这样的对话框.

所以很可能你会发现退休的苹果Java 6世界和未来的Oracle Java 7世界之间的其他不一致.

要构建基于Oracles Java 7的应用程序包,您需要使用包含Oracles JavaAppLauncher的Oracles AppBundler Ant任务.现在只支持用于Mac OS X的Oracles Java 7,并且不会向后兼容苹果自己的Java系统软件包.

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

>内容/插件

在应用程序包中,例如

> Contents / PlugIns / jdk1.7.0_17.jdk

这意味着你的应用程序包完全是自包含的,并且可以用于App Store部署.

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

为了更详细的答案,你也应该结帐:

> Application is using Java 6 from Apple instead of Java 7 from Oracle on Mac OS X?

捆绑Java 7 .jar for Mac的更多相关文章

  1. xcode – 上传到App Store时进行身份验证

    只需为现有安装/文件夹创建备份,这很重要,因为在(新)安装期间,Transporter将删除以前的安装:现在运行以下命令来更新Transporter:希望这有助于某人.

  2. 无法验证iOS应用(已获得有效证书)

    当切换到优胜美地时,我干净安装了我的Mac,现在我在将iOS提交到商店时遇到了问题.当我验证我的存档时,我不断收到“您的帐户已经拥有有效的iOS分发证书”.我已尝试从会员中心重命名和重新下载我的证书,但这不起作用.解决方法一个非常常见的“doh!”

  3. Xcode:如何导出开发人员配置文件以便在另一台Mac上导入它

    我需要从我的旧Mac导出我的开发者配置文件并将其导入另一台Mac,因为我收到以下错误:我发现我可以从这里导出它:但在我的Mac上我有2个帐户,如果我点击导出帐户,我是否导出它们?就像导出用于签署iOS开发证书的私钥并将其导入新Mac一样?

  4. iOS从UIWebview内容创建pdf

    哪个是从webview内容中获取最佳质量pdf文档的最佳选择?

  5. macos – 使用Xcode 4在Mac OS X Lion上设置SDL

    我一直试图让一个超级简单的SDL程序工作.我正在使用MacOSXLion.我有SDL在SNowLeopard工作,但它似乎不想在狮子身上工作.到目前为止我有这个:当我尝试编译此代码时,它给了我这个错误:如果我取消注释当前评论的#ifdef内容,程序将编译,但随后会在SDL_SetVideoMode行上接收SIGABRT.我刚才在另一个程序中看到了这些注释的东西,我不确定我是否应该拥有它.我怎么能让这个工作?

  6. ios – 未在Mac上接收自定义记录区域的CloudKit推送通知

    这看起来只是OSX中的一个错误,但可以通过这个简单的更改来解决.

  7. ios4 – 在iOS模拟器和设备中测试NSFileProtectionComplete

    我锁定了模拟器,但是当我在Finder中双击文件时,文件仍然可读.解决方法iTunes不会从设备复制文件,除非它有您的密码或设备先前已被信任;这就是它如何解密数据.在Xcode8及更早版本中,模拟器使用主机文件系统,macOS当前不支持每个文件加密,就像iOS一样,因此在macOS上你无法在模拟器中测试它.

  8. xcode4 – 设置XCode 4工作区以为Mac和iOS构建库

    我正在尝试在XCode工作区内构建几个应用程序:一个应用程序将是一个iOS应用程序,另一个应用程序将是一个MacOSX应用程序.我希望在应用程序的两个版本中都包含一组特定的类.我正在努力弄清楚什么样的项目结构最能支持一些共享的代码,一些特定于iOS应用程序,一些特定于Mac应用程序.是否有一般的XCode或XCode4中的这种事情的最佳实践?我应该为共享代码创建一个库项目,并为该库的iOS和MacOSX版本创建2个不同的目标吗?

  9. xcode – Mac App Store拒绝 – 未启用应用沙箱

    我已将我的应用程序提交到MacAppStore,并且验证正常.但是,我继续使用以下内容获取无效二进制消息;AppsandBoxnotenabled–Thefollowingexecutablesmustincludethe“com.apple.security.app-sandBox”entitlementwithaBooleanvalueoftrueintheentitlementsproper

  10. macos – Applescript iTunes字典解释

    我想知道以下不同配色方案的含义:蓝色C标签是什么意思?请温柔;-)解决方法蓝色“C”表示“命令”.你这样使用这些:紫色C表示“类”.这些表示可以从iTunes中提取的不同类型的数据,选择单个类会显示它具有的属性(橙色E).类是在您请求信息后返回给您的内容,如下所示:运行之后,currentSong将包含一个Song类的实例,然后您可以询问该信息,例如其艺术家是谁,等等.

随机推荐

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. Java利用POI实现导入导出Excel表格

    这篇文章主要为大家详细介绍了Java利用POI实现导入导出Excel表格,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. Mybatis分页插件PageHelper手写实现示例

    这篇文章主要为大家介绍了Mybatis分页插件PageHelper手写实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  4. (jsp/html)网页上嵌入播放器(常用播放器代码整理)

    网页上嵌入播放器,只要在HTML上添加以上代码就OK了,下面整理了一些常用的播放器代码,总有一款适合你,感兴趣的朋友可以参考下哈,希望对你有所帮助

  5. Java 阻塞队列BlockingQueue详解

    本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景,通过实例代码介绍了Java 阻塞队列BlockingQueue的相关知识,需要的朋友可以参考下

  6. Java异常Exception详细讲解

    异常就是不正常,比如当我们身体出现了异常我们会根据身体情况选择喝开水、吃药、看病、等 异常处理方法。 java异常处理机制是我们java语言使用异常处理机制为程序提供了错误处理的能力,程序出现的错误,程序可以安全的退出,以保证程序正常的运行等

  7. Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧

  8. 面试突击之跨域问题的解决方案详解

    跨域问题本质是浏览器的一种保护机制,它的初衷是为了保证用户的安全,防止恶意网站窃取数据。那怎么解决这个问题呢?接下来我们一起来看

  9. Mybatis-Plus接口BaseMapper与Services使用详解

    这篇文章主要为大家介绍了Mybatis-Plus接口BaseMapper与Services使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

  10. mybatis-plus雪花算法增强idworker的实现

    今天聊聊在mybatis-plus中引入分布式ID生成框架idworker,进一步增强实现生成分布式唯一ID,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

返回
顶部