如何制作一个带有Cocoa UI的Java应用程序?

4

我需要在项目中使用Java API,但是由于我不喜欢Java UI并且我使用的是Mac系统,因此我想在Java代码周围构建本地Cocoa应用程序。我知道Xcode曾经直接支持这种事情,但是现在已经不再支持了,那么最好的方法是什么?如果有影响的话,我的Mac OS版本是10.6.8,Xcode版本是3.2.5。


关于唯一能想到的事情就是让你的Java代码使用JNI与Cocoa/Carbon代码进行通信。 - seand
4个回答

4
你可以通过这个Java-Objective-C桥接器使用任何Cocoa API。与Rococoa不同的是,它不需要在开始之前生成大量的Java类存根。它是Objective-C运行时的一个小动态包装器,允许您向Cocoa对象发送消息。

3
如果您打算推广自己的产品,您需要在回答中包含免责声明以说明此事。 - andrewsi
不幸的是,尽管它仍然运行得非常好,但使用起来相当痛苦,而且方法并不总是正确返回。 - uchuugaka

1

我不确定使用XCode是否可能。但是,可以使用SWT创建GUI,它使用本地小部件。

然而,我不太了解Java中的GUI应用程序,因此我不知道是否有任何使用SWT的GUI设计师,尽管似乎Eclipse的WindowBuilder Pro可以。


WindowBuilder 实际上是 Java 最好的 GUI 构建工具,因此您不会有任何损失。 - Voo
是的,但那仍然会是基于Java的GUI。我想从本地GUI调用Java代码,而不需要使用SWT或Swing之类的任何东西;这可能吗? - Frungi

1
根据这篇苹果技术笔记,在本地的Mac应用程序中启动JVM是可能的。该文章最初是在2006年编写的,自那时以来,苹果对Java的支持发生了很多变化。然而,看起来这篇文章今年已经更新过了,所以也许它仍然被当前版本的操作系统支持?我不能保证它,但似乎值得一试。

考虑到JVM是用C++编写的,而且必须为Linux、Windows和Mac OS进行编译,这并没有什么特别之处。但是,您不需要(尽管这可以使它变得更简单)在同一进程中使用GUI,并且有本地小部件可用。 - Voo
我目前也在研究同样的事情,想问一下:它有效吗? - Stefan Schubert-Peters
这是真的!例如,IntelliJ使用本地的macOS启动器来初始化JVM! - Tino Caer

0

你可以通过rococoa调用几乎所有的Cocoa API,但这并不一定快速或干净。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接