gpt4 book ai didi

java - 无法在 SciTE 中执行 Java 代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:52 25 4
gpt4 key购买 nike

我写了一个示例代码:

import java.util.Scanner;

public class abcd {
public static void main(String[] args) {
System.out.print("please enter a: ");
Scanner a = new Scanner(System.in);
String b = a.next();
System.out.println(b);
}
}

我能够通过 Ubuntu 终端编译和执行这段代码。在 SciTe 中,它编译得很好,但是当我运行它时,我遇到了这个错误:

please enter a: Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Scanner.next(Scanner.java:1371)
at abcd.main(abcd.java:8)

有什么建议吗?

编辑:当我在终端中执行文件时,我执行:'java abcd' Scite 执行:'java -cp .abcd'。这两个命令有何不同,为什么 java -cp 不起作用?

最佳答案

似乎在 Linux/Unix 上的 SciTE 中处理标准输入时存在错误/不正确的实现。

错误的描述和解决方法在这个 PDF 文档中:A Problem with SciTE Go Command on Linux

注意:这不是官方文档,但它似乎符合您的问题。

根据该文档,在 SciTE 上通过“Go”命令运行 Java 程序时,输入应该来自输出 Pane 。但是,在 Linux 上这无法正常工作,就好像您正在从空流中读取一样。

当您从空流中读取时,Scanner 在尝试使用 next() 读取值时会看到文件结束标记, nextInt() 等。它会抛出 NoSuchElementException,因为流中没有输入元素。

解决此问题的选项:

  • 尝试上述文档中提到的方法,在 Linux 终端而不是输出 Pane 中使用“Go”。
  • 在终端中运行程序并完全避免“Go”命令。
  • 使用不存在此问题的其他 IDE。

关于java - 无法在 SciTE 中执行 Java 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521737/

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