0

我有一个名为 Adventure.class 的 java 类。我有一个名为 Adventure 的 AppleScript 应用程序。我正在尝试让 Adventure 应用程序在 Mac 上的终端中运行 Adventure.class。基本上,我试图将它放在可下载文件夹的位置,里面是应用程序和标有“文件”的文件夹。files里面是一个bin文件夹,里面是class文件。Adventure.app 位于主目录中,带有文件夹。到目前为止,这是我的 AppleScript。

set filepath to POSIX path of (path to me)
set newpath to text 1 thru ((offset of "Adventure.app" in filepath) - 1) of filepath
do shell script "java " & newpath & "files/bin/Adventure"

无论如何,它抛出了这个错误:

java.lang.NoClassDefFoundError: /Users/Russell/Documents/Adventure/files/bin/Adventure (wrong name: Adventure)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
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)

java Adventure当我在正确的文件夹中时,我通常可以通过在终端中键入来启动课程。但是,我无法在 AppleScript 中导航到该文件夹​​,因为当您执行下一行时它不会停留在该文件夹中。任何帮助,将不胜感激 :)

4

2 回答 2

0

我最终让它与它一起工作(在命令执行之前也提供了一堆空行和东西):

set filepath to POSIX path of (path to me)
set newpath to text 1 thru ((offset of "TextAdventure.app" in filepath) - 1) of filepath
do shell script "open /Applications/Utilities/Terminal.app"
tell application "Terminal"
    activate
    do script "cd \"" & newpath & "TextAdventure.app/Contents/Java/\""
    do script "echo \"


























 \"" in window 1
    do script "java Adventure" in window 1
end tell
于 2013-01-12T03:28:44.020 回答
0

您可以结合“cd”命令来设置 shell 脚本的路径。例如,在这里我 cd 到桌面,然后获取文件列表...

set desktopFolder to path to desktop
do shell script "cd " & quoted form of POSIX path of desktopFolder & "; ls"
于 2013-01-10T20:05:21.753 回答