我正在用Java开发一个Mac应用程序,它可以登录到我们客户的任何一个数据库。我的用户希望运行这个程序的多个副本,这样他们就可以同时登录到几个客户端,而不是注销再重新登录。
如何允许用户一次打开我的应用程序的多个副本?
我使用Eclipse进行开发,使用Jarbundler制作应用程序。
编辑:更重要的是,有没有办法在代码库中做到这一点,而不是让我的用户在他们的系统上做一些时髦的事情?我宁愿给他们一个“打开新窗口”菜单项,然后让他们在终端中输入内容。
发布于 2008-09-23 13:00:16
你可能已经得到了足够的代码,你不想听到这个,但是你真的不应该启动同一个应用程序的两个实例。你发现它如此困难是有原因的,那是因为苹果公司不想让你这么做。
OSX的方法是在XCode中使用基于Cocoa的应用程序模板。Apple Documentation: choosing a project.
这是用户非常习惯的东西,它工作得很好。FTP程序、IRC客户端和许多其他类型已经使用不同的“文档”窗口来指向不同的服务器或通道。指向不同的数据库在本质上没有什么不同。
这取决于你写了多少代码,以及你的应用程序是如何设计的,如果不从头开始,这可能是几乎不可能实现的。然而,在设计阶段遇到这个问题的开发人员绝对应该接受苹果的建议。
发布于 2008-09-22 19:19:33
从终端(或在脚本包装器中):
/Applications/TextEdit.app/Contents/MacOS/TextEdit &这样的东西对你来说应该是有效的。
要在Java中执行此操作,请执行以下操作:
String[] cmd = { "/bin/sh", "-c", "[shell commmand goes here]" };
Process p = Runtime.getRuntime().exec (cmd);发布于 2008-09-22 20:09:51
在终端上,我可以运行
open -n -a appName.app然后在Applescript中,我可以运行
tell application "Terminal"
activaate
do script "open -n -a appName.app"
end tell然后,我可以在Java中执行该脚本。然后,我可以将Java代码填充到Action中。然后,将该操作添加到一个菜单项中,该菜单项显示为“打开新窗口”。
这就是我现在要做的。现在我只需要拿到appName。
https://stackoverflow.com/questions/116579
复制相似问题