当前位置: 首页 > 面试题库 >

OS X上的Java:如果.app软件包包含JVM捆绑包,则“ open”命令将无法运行

羊毅庵
2023-03-14
问题内容

我正在尝试从Java应用程序创建一个独立的Mac应用程序。我已经设置了.app目录,配置了Info.plist文件,并在依赖项以及Java运行时中进行了烘焙。我可以成功打开.app并启动该程序,并且除一个特殊的代码段外,其他所有东西都可以正常工作:

ProcessBuilder pb = new ProcessBuilder(“open”, “/Applications/TextEdit.app”);
pb.start();
当我启动.app时,此代码似乎没有运行或至少没有执行任何操作。如果我打开包内容并启动.jar,它运行正常。我设法缩小范围,使其仅在.app包含Java运行时程序包时发生。因为运行.jar使用系统的Java,而运行.app使用捆绑的Java,所以这一定是我苦苦挣扎的原因。

我的Mac已安装的Java JDK的版本应为1.8.0_77。捆绑版本应为1.8.0_74。我在制作.app时将其作为参考从Moneydance应用程序中获取。

非常感谢您的帮助,因为这应该是释放它的最后一步。我创建的这个问题比这里的其他问题更具体。


问题答案:

因此,我将自己回答这个问题,因为问题在我身旁。

我使用的捆绑JVM(是我从Moneydance应用程序复制的)是罪魁祸首。我怀疑Moneydance的创建者可能会删除其应用程序不使用的运行时捆绑功能,以减小文件大小。不管是什么原因,我的问题都是通过创建自己的捆绑包解决的。

我这样做是复制/Library/Java/JavaVirtualMachines/jdk1.8.0_77.jdkMyApp.app/Contents/PlugIns/。之后,我编辑了Info.plist称为JVMRuntime使用该条目的密钥jdk1.8.0_77.jdk。我的应用程序现在使用此JDK而不是以前使用的捆绑软件,open现在可以正常运行了。

很抱歉没有做我的作业,但感谢您的帮助。我在编写复制步骤时发现了这个问题,所以没有您,我可能找不到它。我想我对那些可能会遇到类似情况的人说的就是检查您的JVM软件包。



 类似资料:
  • 问题内容: 我已经为此花了好一会儿,想知道是否有可能从头开始。感谢您对此的任何帮助! npm包 我有一个npm包,它基本上是一个React组件库。该库具有嵌入式样式表,该样式表引用了CSS中的资源,例如字体和图像。然后将所有这些都使用webpack捆绑到中。 的配置如下所示: 随着看起来像: 到目前为止,一切都很好。 应用程序 现在,在另一个代码库中,我有了主应用程序,该应用程序安装了该npm软件

  • 问题内容: 我在eclipse 3.5中创建了一个简单的插件项目,该项目仅存储第三方库供eclipse RCP应用程序中的其他捆绑软件使用。按预期工作:我编辑清单,导出所需的软件包,并将库添加到构建路径(项目构建路径以及清单构建路径)。 几天后,我在该项目中添加了另一个jar,执行相同的步骤(导出软件包,将库添加到构建路径),但是这次我无法从其他软件包中的导出软件包中导入类。该包在清单编辑器上显然

  • 我和rvm在OSX Marvericks上。从bundler安装像nokogiri这样的本机扩展失败。但从gem命令安装是可行的。 我还安装了最新的XCode命令行工具。 我不知道bundle安装和gem安装有什么区别。 gem安装的结果。 相关软件的版本: 添加:我的bundler配置

  • 我还不是一个有经验的OSGi用户,因此我会遇到一些问题。 我正在尝试使用作为外部提供程序,因为我不希望我的包包含所有这些类。 但是,当我运行这组包(my和)时,我得到以下错误: 错误:Bundle org.apache.serviceMix.bundles.hadoop-client[56]错误启动文件:bundles/org.apache.serviceMix.bundles.hadoop-cl

  • 问题内容: 我对mvc4捆绑器有一个奇怪的问题,不包括扩展名为.min.js的文件 在我的BundleConfig类中,我声明 我认为 当它渲染时,它只会渲染 如果我将jquery.tmpl.min.js重命名为jquery.tmpl.js(并相应地更新捆绑软件中的路径),则两个脚本均正确呈现。 是否有一些配置设置导致其忽略“ .min.js”文件? 问题答案: 我最初发布的解决方案是有问题的(很

  • 我有一个包在 此文件夹包含: 然后我在中注册: 这样做后,网站根本无法工作。日志上说: PHP致命错误:未捕获错误:在/var/www/html/symproject/app/AppKernel中找不到类“MyCompany\Action\Provider\MyAppProvider\Bundle\MyAppBundle”。php:20\n堆栈跟踪:\n#0/var/www/html/sympro