【问题标题】:How can I associate a console with a Java application?如何将控制台与 Java 应用程序关联?
【发布时间】:2009-03-24 06:08:18
【问题描述】:

自从我学习 Java 以来,我已经能够创建 GUI 程序。 然而,即使是简单的“Hello World!”如果需要控制台,程序将无法运行。 我对该主题的研究使我得出结论,即我的 Java 运行时环境没有与之关联的控制台。

是否可以像在 C# 中那样调用 Win32“AllocConsole”方法?

编辑:

我的意思是你所描述的控制台,就像 C# 程序一样的控制台。 我忘了提到我正在使用 Eclipse IDE。根据我的发现,Eclipse 使用“javaw.exe”而不是“java.exe”运行程序,这导致程序没有控制台。另外,windows“命令提示符”是一个使用我指的控制台类型的程序。

感谢您的任何回答。

Euphoria83 在我想要做的事情上走在了正确的轨道上。顺便说一句,他的方法有效,但我希望控制台在我单击我创建的程序的“.jar”文件时自动出现。基本上,我需要控制台在运行时像在 C# 中那样工作。此外,Eclipse 确实有一个控制台窗口(我认为他们将其称为控制台透视图,但我习惯使用 Visual Studio,所以我不太确定),它将显示程序输出仅在 Eclipse 内。我希望控制台在运行时工作,而不仅仅是在集成开发环境中。

【问题讨论】:

    标签: console java


    【解决方案1】:

    要么将 'java.exe' 与 .jar 扩展名相关联(默认情况下它将是 'javaw.exe',它没有控制台),在这种情况下,您将获得每个 jar 的控制台,或者创建一个快捷方式/.exe 以您选择的语言/批处理脚本在您单击它时运行“java -jar myjar.jar”。

    【讨论】:

    • 后者是在 Java 中执行此操作的常用方法——我通常为命令行程序创建批处理和 shell 脚本——你永远无法知道你的用户环境是如何设置的,而且你不会想要强制用户将 java.exe 与 jars 而不是 javaw 相关联...
    • 是的,但是 OP 正在讨论修复他/他正在开发的机器,而不是为用户分发任何东西(我通常使用快捷方式或 .exe 存根,它在注册表以查找运行时所在的位置)。
    【解决方案2】:

    控制台到底是什么意思?

    输入正则

    System.out.println("Hello world!");
    

    在一个简单的 Java 程序上并从命令行运行它应该会给你想要的结果。除非您对控制台的定义不同,否则您需要更好地解释自己。

    【讨论】:

      【解决方案3】:

      正如 Yuval 所说,System.out.println("...") 将您的文本打印到控制台窗口。

      稍微解释一下,System.out 是由 System 类自动提供的“标准”输出流(您可能从 C 或 C++ 中知道类似的东西)。

      您可以创建自己的输出流(有几种不同类型的输出流类,例如写入文件或字符串)并使用它们的 print() 和 println() 方法。

      【讨论】:

        【解决方案4】:

        您是在执行代码时收到错误消息,还是即使您的代码成功执行也无法看到结果?

        您似乎正在使用 IDE。输出可能被定向到尚不可见的控制台窗口。您必须通过从菜单中选择使其可见。

        试试这个:

        将以下内容保存在名为“Test.java”的文本文件中

        public class Test {
             public static void main(String[] args) {
                  System.out.println("This is a print from my code") ;
             }
        }
        

        然后在运行提示符下键入“cmd”打开控制台(您可以在开始菜单中选择)。转到存储 Test.java 的文件夹并输入。

        > javac Test.java
        

        紧随其后

        > java Test
        

        如果您看到 “This is a print from my code” 正在打印,那么您的代码正在向控制台输出。

        【讨论】:

          【解决方案5】:

          您可以在 C:\Documents and Settings\User\ 中创建一个批处理文件 jarconsole.bat,而不是使用文件关联(这是更改默认值的一种方法)。发送到目录:

          @ECHO OFF
          java -jar %1
          PAUSE
          

          然后您可以通过右键单击并选择 Send To > jarconsole.bat 来启动 jar。

          另请参阅this question,了解如何使用 Eclipse 中的某些控制台功能。

          【讨论】:

            猜你喜欢
            • 2011-01-07
            • 2010-11-04
            • 2013-02-11
            • 2013-07-28
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多