在Xcode应用程序中从Swift调用Java

在Xcode应用程序中从Swift调用Java,第1张

概述我知道一个 Java app can be bundled as a Mac app,其中包含由Java Swing或JavaFX驱动的用户界面,以及捆绑的Java运行时(JRE).但我想在Xcode中使用Cocoa用户界面构建一个本机应用程序,该用户界面调用Java库来处理一些数据. 我需要调用捆绑的JRE,调用所需的库(JAR文件),将引用传递给Mac存储中的文件(或者将文件的内容作为内存中的 我知道一个 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不会自动包含.

总结

以上是内存溢出为你收集整理的在Xcode应用程序中从Swift调用Java全部内容,希望文章能够帮你解决在Xcode应用程序中从Swift调用Java所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1049758.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存