使用命令行使用Jar文件的Java IO

使用命令行使用Jar文件的Java IO,java,jar,console,Java,Jar,Console,我希望能够打开一个jar文件,并让它打开一个控制台,我可以从中与之交互。我尝试用java.exe而不是javaw.exe打开jar,但是当我尝试运行程序时,出现的窗口几乎立即关闭。我做错了什么 您不是从控制台运行java.exe 程序jar无法运行、出现错误或立即退出 要在Windows操作系统上运行java.exe,需要创建代理控制台以运行控制台程序 javaw.exe没有打开控制台,因此您无法看到输出 您不是从控制台运行java.exe 程序jar无法运行、出现错误或立即退出 要在Windo

我希望能够打开一个jar文件,并让它打开一个控制台,我可以从中与之交互。我尝试用
java.exe
而不是
javaw.exe
打开jar,但是当我尝试运行程序时,出现的窗口几乎立即关闭。我做错了什么

  • 您不是从控制台运行java.exe
  • 程序jar无法运行、出现错误或立即退出
  • 要在Windows操作系统上运行java.exe,需要创建代理控制台以运行控制台程序
  • javaw.exe没有打开控制台,因此您无法看到输出
  • 您不是从控制台运行java.exe
  • 程序jar无法运行、出现错误或立即退出
  • 要在Windows操作系统上运行java.exe,需要创建代理控制台以运行控制台程序
  • javaw.exe没有打开控制台,因此您无法看到输出
    您的程序已关闭,因为它未等待输入数据

    见示例:

    public static void main(String[] args) throws Exception {  
        System.out.println("Hello! I'm waiting for input...");
        args = new Scanner(System.in).nextLine().split(" ");            
        System.out.println("I received your data: \r\n\r");
        for(int i=0; i<args.length; i++) System.out.print(args[i] + " ");
        System.out.println("\r\n\rAfter 10 second I'll close");
        Thread.sleep(10 * 1000);
        // Here program did not waiting for input and was closed automatically;
    }   
    

    10秒后,程序关闭,因为它没有等待输入数据。

    您的程序关闭,因为它没有等待输入数据

    见示例:

    public static void main(String[] args) throws Exception {  
        System.out.println("Hello! I'm waiting for input...");
        args = new Scanner(System.in).nextLine().split(" ");            
        System.out.println("I received your data: \r\n\r");
        for(int i=0; i<args.length; i++) System.out.print(args[i] + " ");
        System.out.println("\r\n\rAfter 10 second I'll close");
        Thread.sleep(10 * 1000);
        // Here program did not waiting for input and was closed automatically;
    }   
    

    10秒后,程序关闭,因为没有等待输入数据。

    你说的“打开一个罐子”是什么意思?读取jar文件的内容,或者将其包含的类作为Java应用程序执行?像“java-jarjarname.jar”一样,定义“与交互”。你想让你的jar通过控制台从用户那里读取输入吗?@KevinHooke我想作为Java应用程序执行它是有清单文件还是提供了你的主类?你的
    main
    方法中有什么?难道你的应用程序不可能完成它的工作并正常结束吗?我不明白你的问题。如果您打开控制台应用程序(例如cmd.exe),然后按照@KevinHooke的建议执行“java-jar jarname.jar”,会发生什么情况?您所说的“打开jar”是什么意思?读取jar文件的内容,或者将其包含的类作为Java应用程序执行?像“java-jarjarname.jar”一样,定义“与交互”。你想让你的jar通过控制台从用户那里读取输入吗?@KevinHooke我想作为Java应用程序执行它是有清单文件还是提供了你的主类?你的
    main
    方法中有什么?难道你的应用程序不可能完成它的工作并正常结束吗?我不明白你的问题。如果打开控制台应用程序(例如cmd.exe),然后按照@KevinHooke的建议执行“java-jar jarname.jar”,会发生什么情况?