使用AppleScript在终端中运行Java类

使用AppleScript在终端中运行Java类,java,macos,terminal,applescript,Java,Macos,Terminal,Applescript,我有一个名为Adventure.class的java类。 我有一个名为Adventure的AppleScript应用程序。 我正在尝试让冒险应用程序在mac终端上运行Adventure.class。 基本上,我试图让它成为一个文件夹可以下载的地方,里面是应用程序和一个标有“文件”的文件夹。文件的内部是一个bin文件夹,其中是类文件。Adventure.app位于主目录下的files文件夹中。 这是到目前为止我的申请书 set filepath to POSIX path of (path to

我有一个名为Adventure.class的java类。 我有一个名为Adventure的AppleScript应用程序。 我正在尝试让冒险应用程序在mac终端上运行Adventure.class。 基本上,我试图让它成为一个文件夹可以下载的地方,里面是应用程序和一个标有“文件”的文件夹。文件的内部是一个bin文件夹,其中是类文件。Adventure.app位于主目录下的files文件夹中。 这是到目前为止我的申请书

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中导航到该文件夹,因为在执行下一行操作时,它不会停留在该文件夹中。任何帮助都将不胜感激:)

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

set desktopFolder to path to desktop
do shell script "cd " & quoted form of POSIX path of desktopFolder & "; ls"

我最终让它来处理这个问题(在命令执行之前还提供了一堆空行和其他内容):


尝试将classpath参数设置为包含.class文件的文件夹。i、 e.“java-classpath”&newpath&“文件/bin冒险”
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