我知道一个Java app can be bundled as a Mac app,其中包含由Java Swing或JavaFX驱动的用户界面,以及捆绑的Java运行时(JRE).但我想在Xcode中使用Cocoa用户界面构建一个本机应用程序,该用户界面调用Java库来处理一些数据.
我需要调用捆绑的JRE,调用所需的库(JAR文件),将引用传递给Mac存储中的文件(或者将文件的内容作为内存中的大字符串),然后返回一个字符串(XML或CSV)或制表符分隔的数据).
这个问题类似于this Question,但更新了Swift和现代macOS和Java 8.
解决方法:
除非你想通过像JNI之类的东西直接在内存中进行通信所涉及的所有痛苦,否则唯一的方法是使用NSTask(for example)读取/写入文件或读取标准来启动外部进程.
如果所有Java组件都在.app中,则可以直接引用捆绑的JRE和程序JAR.
/Applications/MyApp.app/.../java -jar /Applications/MyApp.app/.../MyAppJar.jar
不确定你是如何计划捆绑JRE的,因为这不是Swing应用程序.也许你会使用appbundler制作一个假的Swing .app,然后只需将文件结构复制到你的原生应用程序.
如果是这样,请记住,您可能必须手动复制bin / java,因为appbundler不会自动包含.
原文地址:https://codeday.me/bug/20190628/1311057.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。