我有一个名为Adventure.class的java类。 我有一个名为Adventure的AppleScript应用程序。 我试图使冒险应用程序在Mac上的终端中运行Adventure.class。 基本上,我试图将其设置为可下载文件夹,内部是应用程序和标有“文件”的文件夹。文件内部是一个bin文件夹,里面是类文件。 Adventure.app位于主目录中,带有files文件夹。 到目前为止,这是我的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中的该文件夹,因为当您执行下一行时它不会保留在该文件夹中。任何帮助将不胜感激:)
答案 0 :(得分:0)
您可以组合“cd”命令来设置shell脚本的路径。例如,我在这里cd到桌面,然后获取文件列表......
set desktopFolder to path to desktop
do shell script "cd " & quoted form of POSIX path of desktopFolder & "; ls"
答案 1 :(得分: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