我對Apple腳本非常陌生,所以請耐心等待。我需要使用applescript
運行.jar
文件,jar
不可執行,所以我調用class
,如com.path.to.myClass
。我的蘋果腳本看起來如下─從Apple腳本運行Java
display alert "You are about to start the image rename process." buttons {"OK", "Cancel"}
set theAnswer to button returned of the result
if theAnswer is "OK" then
do shell script "java -classpath ./ImageRename_JAVA-1.0.0.jar:. com.mff.image.rename.Main"
else
say "Exit"
end if
兩者的AppleScript和ImageRename_JAVA-1.0.0.jar
在同一個目錄中,但是當我運行該腳本,它給了我一個錯誤 -
error "Exception in thread \"main\" java.lang.NoClassDefFoundError: com/mff/image/rename/Main
Caused by: java.lang.ClassNotFoundException: com.mff.image.rename.Main
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)" number 1
難道我設置classpath
錯誤?如果是這樣,那麼正確的方法是什麼?另外,如何將jar
添加到classpath
?
當我從Terminal
運行下面的命令它運行得很好。
$ java -classpath ./ImageRename_JAVA-1.0.0.jar:. com.mff.image.rename.Main
我知道,它可以使用JAR Bundler
更好的方式來完成,但我有過JAR
及其開發利用別人的控制。有沒有辦法可以在YourApplicationName.app/Contents/MacOS/Resources/Java/
目錄下的應用程序中包含所有JAR
,並將其用於類路徑中。
看一看這個答案[SO](http://stackoverflow.com/questions/12101240/java-lang-noclassdeffounderror-org-w3c-tidy-tidy-maven-project/12106292#12106292)。您還需要使用「;」如果你想添加更多的jar到類路徑 – Sal
@Sal,那麼你可以在linux或者蘋果上使用「:」或者「:」。它基本上和我一樣。該命令在'terminal'(命令提示符)中工作,但在從'applescript'運行時失敗。 – Annjawn