java - 当从 Apple 脚本运行时,为什么我的 Runnable .jar 文件没有在终端中打印任何消息?
问题描述
我已经编译了一个jar文件。这是代码:
package javaProject;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("FrameDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
System.out.println("Enter something >>> ");
Scanner scanner = new Scanner(System.in);
System.out.println(scanner.nextLine());
scanner.close();
}
}
这是我的 Apple Script 脚本:
do shell script "java -jar /Users/Harry/Desktop/appleScript.app/Contents/javaProject.jar"
控制台中没有打印任何内容,并且扫描仪对象在任何时候都不会要求我输入,但是会创建 JFrame。谁能解释为什么会这样?谢谢。
解决方案
do shell script
不使用/在控制台中运行,结果(或错误)只是返回给脚本。如果您想进行交互或查看进度,可以在提供控制台的设备中运行脚本,例如终端(可编写脚本)。请注意,每次运行脚本时都会创建一个新窗口/选项卡,除非您指定不同的内容 - 例如,以下脚本将始终使用第一个窗口的第一个选项卡:
tell application "Terminal"
activate
try
do script "echo 'This is a test.' " in tab 1 of window 1
on error errmess -- no window
log errmess
do script "echo 'This is a test.' "
end try
end tell
推荐阅读
- python - 是否可以为 CPLEX 中的变量指定一组特定的值?
- php - 如何使通知与声音一起工作这不适用于声音甚至android中的默认通知声音
- python - 根据具有条件的其他列值创建新列
- google-sheets - 部分匹配一个范围的字符串与另一个范围的字符串,输出部分匹配
- php - 从 Laravel 中的关系中获取最后的记录
- apache-kafka - 在 Kaka Producer 中配置重试的最佳方式
- javascript - Webassembly.instantiate 期间如何定义最大内存?
- c# - 可空引用类型在具有临时可空字段的类中的使用
- memory-leaks - 如何阻止“com.newrelic.agent.Transaction”中的内存泄漏
- rest - 如何从 REST API 访问嵌套的 json?