java - 在桌面上从 Objective-C 启动一个进程

标签 java objective-c macos desktop-application

我们有一个 java 应用程序,我们用一个参数(一个选定的文件夹)调用它,它在 C# 中运行良好。

但是,我不知道如何在 Objective-C 中做到这一点;我找到了 LaunchApplication 命令,但它有点模糊。

有人可以帮帮我吗?


我试过以下方法:

[[NSWorkspace sharedWorkspace] openFile:@"/Users/tharvey/Desktop/Test.jar" withApplication:@"/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java"];

这会在控制台中引发关于无法启动 java 应用程序的错误,并且:

 NSTask *javaApp = [[NSTask alloc] init];
 [javaApp setLaunchPath:@"/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home/bin/java"];

 NSArray *javaAppArguments = [[NSArray alloc] init];
 javaAppArguments = [NSArray arrayWithObjects:@" -jar ", @"/Users/tharvey/Desktop/Test.jar", nil];
 [javaApp setArguments:javaAppArguments];

 [javaApp launch];

但是上面的代码不起作用;并且不会引发错误。

除非启动 jar 会自行运行?

最佳答案

因为它是一个 Java 应用程序,而不是一个文档,您应该可以这样做:

NSString *jarPath = @"/Users/tharvey/Desktop/Test.jar"
[[NSWorkspace sharedWorkspace] openFile:jarPath];

(假设在Finder中双击可以正常启动应用)

关于java - 在桌面上从 Objective-C 启动一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460263/

相关文章:

java - 如何将 .jar 转换为 .exe?

iphone - 我们如何以编程方式更改 iPhone 屏幕的亮度?

ios - UIStackView 内出现意外的圆形 UIButton 行为

macos - 在 OS X 上的 IntelliJ 中,如何清除所有全局设置信息、许可等(任何项目外部)

macos - 基于 View 的 NSBrowser?

macos - 将我的应用与其在 OSX 中的自定义文件类型相关联并双击打开文件

java - 使用 Java FlowLayout

Java 和 SQL - 批处理时出错,必须执行或清除批处理

java - 将子域从 AWS ELB 传递到应用程序服务器

iphone - 绘制图像缩放并旋转后,到其他图像iOS