首页 > 解决方案 > 当从 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。谁能解释为什么会这样?谢谢。

标签: javaswingjframeapplescript

解决方案


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

推荐阅读