首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在SciTE中执行Java代码

无法在SciTE中执行Java代码
EN

Stack Overflow用户
提问于 2016-02-20 10:09:48
回答 3查看 872关注 0票数 3

我编写了一个示例代码:

代码语言:javascript
复制
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中,它编译得很好,但是当我运行它时,我会遇到以下错误:

代码语言:javascript
复制
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‘Scite做:'java -cp .abcd’。这两个命令有什么不同,为什么java -cp不能工作?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-02-20 11:58:04

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

错误和解决方法的描述在这个PDF文档中:Linux命令的一个问题

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

根据该文档,当通过SciTE上的"Go“命令运行Java程序时,输入应该来自输出窗格。但是,在Linux上,这是不能正常工作的,就像在从空流中读取一样。

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

您可以选择如何解决这个问题:

  • 尝试上述文档中提到的方法,在Linux终端中使用"Go“而不是输出窗格。
  • 在终端中运行程序,并发出"Go“命令。
  • 使用不存在此问题的其他IDE。
票数 1
EN

Stack Overflow用户

发布于 2016-02-20 10:59:13

尝试在next()之前使用hasNext();

代码语言:javascript
复制
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);
    while(a.hasNext()) {
      try {
        String b = a.next();
        System.out.println(b);
      } catch (NoSuchElementException e) {}
    }
  }
}
票数 0
EN

Stack Overflow用户

发布于 2016-02-20 11:06:07

我无意冒犯,但是使用hasNext()并不能解决这个问题,它只会使OP能够很好地处理它。我不认为这是他/她想要的。

现在我无论如何都不是专家,因为某种原因,你的程序代码在我的机器上工作.但是无论如何,当您的程序在可迭代对象上循环时,抛出一个NoSuchElementException,并且没有什么可循环的东西了,尽管您的程序希望在那里看到一些东西。在Scanner.next()的Java中快速查找显示,如果没有更多可用于读取的标记,则会抛出此异常。

现在,如果我不得不猜测,我建议您尝试使用Scanner.next()以外的其他东西,看看它是否有效。

它在我的机器上工作,但在你的机器上不工作,这有点令人惊讶,所以你能提供一些关于你如何运行你的程序的信息吗?您是从默认命令行运行它吗?还是在监狱里?(如果第二种情况是这样的话,我真的帮不了你,我甚至从来没有碰过Scite)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35521737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档