Sublime Text 2中的Java控制台输入?
我最近切换到了sublime text 2,但我似乎无法找到任何插件/资源,这将允许我在编辑器中实现java控制台输入。 我已经设法使它编译并执行java文件,但每当我的代码需要任何输入(如扫描仪输入)时,代码不会编译,我收到错误。
我已经看到了为python实现这一目标的解决方案,但是却无法在Java上找到任何东西。
好吧,我已经找到了一个完整而完美的解决方案来解决这个“在Sublime中运行java”的问题,我只在Windows 7中对此进行了测试。
按照以下步骤,您将在sublime中拥有2个Build Systems – “JavaC”和“JavaC_Input”。
-
“JavaC”可以让你运行不需要用户输入的代码,并在sublime的终端模拟器中显示结果,这样既方便又美观。
-
“JavaC_Input”允许您在单独的终端窗口中运行需要用户输入的代码,它能够接受用户输入。 您还可以在此构建系统中运行不需要输入的代码,因此如果您不介意弹出窗口,您可以坚持使用此构建系统并且不要切换。
您可以在Tools – > Build System之间切换构建系统。 然后使用ctrl + b编译并运行代码。
以下是实现此目的的步骤:
(注意:确保你已经拥有java系统的基本设置:安装JDK并设置正确的CLASSPATH和PATH,我不会详细说明)
“JavaC”构建系统设置
1,使用以下代码制作一个bat文件,并将其保存在C:\ Program Files \ Java \ jdk * \ bin \下,以便将所有内容保存在一起。 将文件命名为“javacexec.bat”。
@ECHO OFF cd %~dp1 javac %~nx1 java %~n1
2,然后编辑C:\ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \ JavaC.sublime-build(如果没有,创建一个),内容将是
{ "cmd": ["javacexec.bat", "$file"], "file_regex": "^(...*?):([0-9]*):?([0-9]*)", "selector": "source.java" }
“JavaC_Input”构建系统设置(主要与@lac_dev的答案相同)
1,安装Cygwin [http://www.cygwin.com/]
2,转到C:\ Users \ your_user_name \ AppData \ Roaming \ Sublime Text 2 \ Packages \ Java \,然后创建一个名为“JavaC_Input.sublime-build”的文件,其中包含以下内容
{ "cmd": ["javacexec_input.bat", "$file"], "file_regex": "^(...*?):([0-9]*):?([0-9]*)", "selector": "source.java" }
3,使用以下代码制作一个bat文件,并将其保存在C:\ Program Files \ Java \ jdk * \ bin \下,以便将所有内容保存在一起。 将文件命名为“javacexec_input.bat”。
@echo off javac -Xlint:unchecked %~n1.java start cmd /k java -ea %~n1
我能够在Windows 8上解决这个问题,我还没有在任何其他平台上测试它,希望这对你有用。
-
安装Cygwin [http://www.cygwin.com/]
-
确保start命令使用驱动器:\ Path_to_cygwin_installation \ bin \ start
- 您可以使用where命令validation这一点:
哪里开始
- 您可以使用where命令validation这一点:
-
创建一个
javac.sublime.build
系统- 这是我的,可以改进
{ “cmd”:[“javac.bat”,“$ file”], “file_regex”:“^(... *?):( [0-9] *):?([0-9] *)”, “selector”:“source.java” }
- 确保更新环境路径,以便知道
javac.bat
; 我把它放在我的java_home
安装下。
-
创建您的
javac.bat
文件并使其在您的环境路径上可用@echo关闭 javac -Xlint:未选中%~n1.java 启动java -ea%~n1
-
在我的例子中,我必须确保我保持应用程序打开:
import java.util.Scanner; class Test { public static void main(String[] args) { Scanner reader = new Scanner(System.in); int input = -1; while(input != 0) { System.out.println("======================="); System.out.println("What is Your Age? Enter 0 to exit;"); input = reader.nextInt(); System.out.println("You've entered " + input + "\n\n"); } } }
您现在可以编译Java文件并在新窗口中获取它。
不幸的是,Sublime Text 2或3 没有可用的解决方案 。
但我还是喜欢它! 所以我通常只是手动指定输入:
System.out.print("Enter Stack size: "); //int input = br.readLine(); int input = 10;
当我需要用输入运行程序时(几乎从不,实际上),留下必要的部分进行评论。