gpt4 book ai didi

objective-c - 如何在 Cocoa 应用程序中打开 jar 文件

转载 作者:行者123 更新时间:2023-12-03 17:30:20 25 4
gpt4 key购买 nike

我正在尝试在我的 Cocoa 应用程序中执行一个 jar。我的研究告诉我应该使用 NSTask。但是,我只能让 system() 工作。例如:

// This works
system("cd /path/to ; /usr/bin/java -jar file.jar");

但这不起作用:

// This does not work
NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:@"/usr/bin/java"];
[task setArguments:[NSArray arrayWithObjects: @"-jar", @"/path/to/test.jar", nil] ];
[task launch];

当我运行我的应用程序时,我收到一个类未找到 Java 异常,因为它找不到其依赖项。

最佳答案

你的代码没有一般错误,我自己试了一下。

我假设您已经在 .profile.bashrc 或其他任何内容中定义了执行以下命令所需的 CLASSPATH 环境变量Java 文件。

system()使用 shell 执行命令,因此 CLASSPATH 由 java 继承。命令。

NSTask另一方面使用shell,所以java不会从您的个人资料中了解 CLASSPATH。

解决方案是添加 @"-cp", @"<your class path>"论据。

更新

正如讨论中所表明的,本例中的问题不是类路径,而是当前工作目录。添加

[task setCurrentDirectoryPath:@"/path/to"]

解决了问题。

关于objective-c - 如何在 Cocoa 应用程序中打开 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11947609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com