簡體   English   中英

如何在Cocoa App中打開jar文件

[英]How to open a jar file in a Cocoa App

我試圖在我的可可應用程序中執行一個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或任何其他文件中定義了執行Java文件所需的CLASSPATH環境變量。

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

另一方面, NSTask 使用外殼程序,因此java不會從您的配置文件中了解CLASSPATH。

解決方案是在參數中添加@"-cp", @"<your class path>"

UPDATE

在討論中發現,這種情況下的問題不是類路徑,而是當前的工作目錄 添加

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

解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM