gpt4 book ai didi

java - 我的 java 控制台不工作

转载 作者:行者123 更新时间:2023-12-01 12:54:47 26 4
gpt4 key购买 nike

我在使用 java 控制台时遇到了非常严重的问题。我已经在java程序中启用了“显示控制台”,该程序位于开始>控制面板>程序>java。我双击它打开,进入高级并启用显示控制台。但是当我尝试运行这个程序时,我收到错误消息没有控制台!请帮忙!!提前致谢。

    public class RegexTest {

public static void main(String[] args) {
// TODO code application logic here
Console console=System.console();

if(console==null){
System.err.println("no console");
System.exit(1);
}
while(true){
Pattern pattern=Pattern.compile(console.readLine("enter your regex: "));
Matcher matcher=pattern.matcher(console.readLine("enter inputstring to serch"));
boolean found=false;
while(matcher.find()){
console.format("i found the text"+" %s starting at index %d and ending at index %d.%n",matcher.group(),matcher.start(),matcher.end());
found=true;
}
if(!found){
console.format("no match found %n");
}
}
}
}

这是输出。

no console
Java Result: 1
BUILD SUCCESSFUL (total time: 13 seconds)

最佳答案

为了避免在运行代码时创建新的操作系统控制台窗口,大多数 IDE(例如 Eclipse、NetBeans、InteliiJ)正在使用 javaw.exe (无窗口)而不是 java.exe

javaw.exe不创建控制台窗口,没有您想要打印的控制台,所以 System.console()返回null

这个例子可能更容易理解我的意思。

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Demo {

public static void main(String[] args) throws Exception {

JFrame frame = new JFrame("Hello");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout());
frame.setSize(250, 100);

frame.add(new JLabel("HELLO WORLD"));
frame.add(new JLabel("Is console available? " + (System.console() != null)));
frame.setVisible(true);

System.out.println("text in console");
}

}

如果您使用 <b>java</b> -cp pathToYourPackage Demo 运行此代码您将看到两个窗口:

enter image description here

但是如果你使用<b>javaw</b> -cp pathToYourPackage Demo您不会看到控制台窗口(这就是大多数 IDE 使用它的原因),但只会看到

enter image description here

关于java - 我的 java 控制台不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23980983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com