AppleScript运行.jar并将被删除文件的名称作为参数传递

AppleScript运行.jar并将被删除文件的名称作为参数传递,jar,applescript,Jar,Applescript,我想运行一个以文件名为参数的jar文件。此文件名应该是放置在.app(AppleScript)上的文件名 我是AppleScript的新手,因此任何帮助都将不胜感激 谢谢 我怀疑是否有AppleScript命令来运行jar文件,因此您可以在AppleScript中运行一系列shell脚本。例如: on open jarFiles tell application "Finder" repeat with currentJar in jarFiles

我想运行一个以文件名为参数的jar文件。此文件名应该是放置在.app(AppleScript)上的文件名

我是AppleScript的新手,因此任何帮助都将不胜感激


谢谢

我怀疑是否有AppleScript命令来运行jar文件,因此您可以在AppleScript中运行一系列shell脚本。例如:

on open jarFiles
    tell application "Finder"
        repeat with currentJar in jarFiles
            set the shellScript to "java -jar " & ¬
                quoted form of ((name of currentJar) as text)
            do shell script shellScript
        end repeat
    end tell
end open
本例将打开一个或多个丢弃的jar文件。请注意,显式代码行tell application“Finder”表示将使用Finder的别名类型(这是成功获取currentJar名称所必需的)

on open处理程序是在用户将一个或多个文件放到AppleScript上的事件中运行的处理程序(在本例中,这些文件被传递到第一个参数name jarFiles)


希望这能有所帮助。

谢谢!但实际上我放的不是jar文件。我有一个jarfile,这个jarfile应该得到一个被放的文件名作为参数。所以假设我放“1.txt”在我的脚本中,脚本应该运行一个特定的jarfile,并将删除的文件名作为参数。但我认为这不会有太大的区别,我将调整您的建议!再次感谢!我尝试使用“将shellScript设置为”java-jar bundleID.jar“&(currentFile的名称)”,但出现了一个错误,声明为“{alias”的项1的名称”Macintosh HD:pathtofile:file.name“}无法转换为Unicode文本类型“有帮助吗?我认为这与AppleScript的基本“alias”类型和“Finder”应用程序的“alias”类型有关(两者略有不同)。我们希望使用Finder的类型,因此请尝试将此代码放在“告诉应用程序”Finder中块以显式使用查找器的“alias”对象。我已编辑示例以包含此更改。抱歉-您还需要使用“as”关键字将其转换为文本。因此(currentJar的名称)应为((currentJar的名称)作为文本)。我再次更新了代码。:)代码中存在错误/安全漏洞;如果要将文本传递给shell,请始终将其作为…的引用形式传递。否则,像
~/Documents/Business receives/Billing.pdf这样简单的文件将失败,因为它将被视为两个文档,并且有人可以命名一个文件
;rm-rf ~
对您的系统进行有害操作。我冒昧地修理了这个;我希望你不介意。编辑:另外,我认为您不需要
告诉应用程序“Finder”
块,但我没有测试它。重复问题: