[英]Running Java from an OSX “.app” bundle causes “Error -10810”
這已通過虛擬盒在OSX Mavericks上進行了測試,在Macbook上在優勝美地上進行了測試。
我有一個名為“ HelloWorld.jar”的簡單可執行jar。
我正在嘗試為此Java應用程序創建一個.app捆綁包。 (顯然,我的實際程序更復雜,但我將其縮減為最棘手的問題)。
在控制台上,我鍵入
echo "Hello World (no java)" > /Users/josh/Desktop/test-output.txt
我查看了test-output.txt並看到了預期的輸出。
我制作了一個簡單的bash腳本,名為test
:
#!/bin/bash
echo "Hello World (no java)" > /Users/josh/Desktop/test-output.txt
我chmod +x test
,然后鍵入./test
,我查看了test-output.txt並看到了預期的輸出。
mkdir -p test.app/Contents/MacOS
cp test test.app/Contents/MacOS
open test.app
我查看了test-output.txt並看到了預期的輸出。
文件HelloWorld.java
:
public class HelloWorld {
public static void main ( String[] args ) {
System.out.println ( "Hello World" );
}
}
歸檔myManifest
Main-Class: HelloWorld
在控制台執行以下操作:
javac HelloWorld.java
jar -cfm HelloWorld.jar myManifest HelloWorld.class
在控制台上,鍵入:
java -jar HelloWorld.jar > /Users/josh/Desktop/java-output.txt
我得到了預期的輸出: Hello World
我制作了一個簡單的bash腳本,名為“ helloworld”
#!/bin/bash
java -jar HelloWorld.jar > /Users/josh/Desktop/java-output.txt
我chmod +x helloworld
,然后輸入./helloworld
,我得到了預期的輸出: Hello World
mkdir -p helloworld.app/Contents/MacOS
cp helloworld helloworld.app/Contents/MacOS
cp HelloWorld.jar helloworld.app/Contents/MacOS
open helloworld.app
我收到以下錯誤:
LSOpenURLsWithRole() failed with error -10810 for the file /Users/josh/Desktop/helloworld/helloworld.app
/user/Josh/desktop/java-output.txt
出現,但里面沒有文本。
如您所見,在.app捆綁包中運行Java時,似乎發生了某些事情,這給了我-10810錯誤。
注意:我還嘗試了第一個示例的變體,在該示例中,我啟動了bash腳本/Applications/TextEdit.app,並且運行成功。 這讓我懷疑問題是專門針對Java的。
有誰知道導致此問題的原因以及如何解決該問題?
我目前沒有方便使用的OS X計算機來進行測試,但是另一個問題在網絡上的提示似乎暗示您需要設置JAVA_HOME
並可能設置PATH
才能使java
在App Bundle中工作。
特別是,在外殼程序腳本的頂部,嘗試運行程序之前,請放置以下幾行,並對系統進行適當的更改。
export JAVA_HOME=/path/to/my/java/install
export PATH=$PATH:/path/to/directory/containing/java
更一般而言,要診斷問題的根本原因,請更改腳本中的現有行以捕獲stderr
然后查看該行是否為您提供了有用的輸出,否則這些輸出可能會被應用程序的環境所吞噬。
java -jar HelloWorld.jar > /Users/josh/Desktop/java-output.txt 2> /Users/josh/Desktop/java-error.txt
如果您能夠捕獲打印的錯誤,則可能足以說明根本原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.