首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SublimeText3不识别Scanner类

SublimeText3不识别Scanner类
EN

Stack Overflow用户
提问于 2014-05-21 01:34:50
回答 1查看 1.6K关注 0票数 3

我正在使用自定义构建系统来编译和运行java程序。

建立系统:

代码语言:javascript
复制
{
     "cmd": ["C:\\Program Files (x86)\\Java\\jdk1.8.0\\bin\\javac", "$file"],
     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
     "selector": "source.java",
     "variants":
     [
     {
          "name": "Run",
          "cmd": ["C:\\Program Files (x86)\\Java\\jdk1.8.0\\bin\\java.exe", "$file_base_name"]
     }
     ]
}

只要我从不要求输入,它就能很好地工作。这就是我在这个简单的程序中遇到的错误:

程序:

代码语言:javascript
复制
import java.util.Scanner;

public class Test
{
    public static void main(String [] args)
    {
        Scanner leopard = new Scanner(System.in);

        int a = leopard.nextInt();
        System.out.println(a);
    }
}

错误:

代码语言:javascript
复制
Exception in thread "main" java.util.NoSuchElementException
    at java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at Test.main(Test.java:9)
[Finished in 1.3s with exit code 1]
[cmd: ['C:\\Program Files (x86)\\Java\\jdk1.8.0\\bin\\java.exe', 'Test']]
[dir: C:\Users\yayu\Desktop]
[path: C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Java\jdk1.8.0\bin]

我的问题是,有没有办法让扫描仪类在SublimeText3中工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-21 02:41:18

不,没有。与documented here extensively一样,当直接在编辑器中运行程序时(例如使用您拥有的构建系统),崇高不支持输入。但是,在Windows上有一个解决办法:首先通过cmd.exe实例运行程序。

代码语言:javascript
复制
{
     "cmd": ["javac", "$file"],
     "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
     "selector": "source.java",
     "shell": true,

     "variants":
     [
     {
          "name": "Run",
          "cmd": ["start", "cmd", "/k", "java", "$file_base_name"],
          "shell": true
     }
     ]
}

/k选项在程序运行完成后保持窗口打开,因此您可以检查输出、错误等。如果您希望它立即关闭,只需使用/c。根据错误消息,我删除了javacjava可执行文件的完整路径,因为它已经在PATH中了。它使构建系统更干净,更容易理解。

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

https://stackoverflow.com/questions/23772636

复制
相关文章

相似问题

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