我有一堆红宝石和Java脚本,它们与Platypus打包在一个应用程序包中。核心脚本是Ruby,它使用Open3启动一系列.jar文件,如下所示:
stdout, stderr, status = Open3.capture3("java -jar script.jar '#{file}'")
脚本本身没有什么其他功能,它所做的只是根据与脚本无关的标准检查某些文件的有效性,并打印文件是否通过或失败。
我的问题特定于ruby,java和open3交互的方式。我将这组脚本继承为一个“拖放”小程序,其目的是使用户更轻松地将其文件拖放到图标上,并使所有内容自动运行,而无需使用Terminal。但是,每次ruby脚本到达运行“ jar”文件的位置时,都会在停靠栏中(在MacOS上)出现一个小图标,上面写着“ java”,该Java变为活动窗口(尽管没有弹出窗口)直到脚本运行完毕。
这弄乱了很多用户的工作流程,尤其是在处理成批文件时,因为它会使活动/不活动窗口反复切换。有没有办法做到这一点,如果您在不带终端的情况下运行Java脚本,并且在捆绑的applet中,该脚本不会弹出打开图标并迫使您的活动窗口变为非活动状态?换句话说,有没有办法让脚本在后台完全运行 ,而不会中断活动的工作流/窗口?
如果这是一个奇怪的问题,我深表歉意,因为我主要使用标准Ruby编写代码,所以我并未真正使用捆绑的应用程序或java。