Sublime Text 2中如何进行Java控制台输入?

8

我最近转用Sublime Text 2,但是我似乎找不到任何插件或资源,让我能够在编辑器中实现Java控制台输入。我已经成功让它编译和执行Java文件,但是每当我的代码需要任何输入(例如扫描仪输入)时,代码就无法编译,我收到一个错误。

我已经找到了Python的解决方案,但是还没有找到Java的。


请参考此链接以获取Ubuntu的相关信息:https://dev59.com/3mkv5IYBdhLWcg3wfA0P#53972598 - Raghav
3个回答

5

好的,我已经想出了一个完整而完美的解决方案来解决这个“在Sublime中运行Java”的问题,我只在Windows 7上测试过。

按照以下步骤,您将在sublime中拥有2个编译系统 -“JavaC”和“JavaC_Input”。

  • “JavaC”可以让您运行不需要用户输入并在sublime的终端模拟器中显示结果的代码,这非常方便且外观漂亮。

  • “JavaC_Input”允许您在单独的终端窗口中运行需要用户输入的代码,它能够接受用户输入。您也可以在此构建系统中运行不需要输入的代码,因此,如果您不介意弹出窗口,则可以坚持使用此构建系统而不进行切换。

您可以从工具 -> 构建系统之间切换构建系统。使用ctrl+b编译&运行代码。

以下是实现此目的的步骤:

(注意:确保您已经具备java系统的基本设置:安装JDK并设置正确的CLASSPATH和PATH,我不会详细说明)

“JavaC”构建系统设置

1、创建一个批处理文件,其中包含以下代码,并将其保存在C:\ Program Files \ Java \ jdk * \ bin \下,以将所有内容保持在一起。将文件命名为“javacexec.bat”。

@ECHO OFF
cd %~dp1
javac %~nx1
java %~n1

2、然后编辑 C:\Users\你的用户名\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、创建一个批处理文件,加入以下代码,并将其保存在 C:\Program Files\Java\jdk*\bin\ 目录下,以便管理。文件名为 "javacexec_input.bat"。

@echo off
javac  -Xlint:unchecked %~n1.java 
start cmd /k java -ea %~n1

1

我在Windows 8上成功解决了这个问题,我没有在其他平台上测试过,希望对你有用。

  1. 安装Cygwin [http://www.cygwin.com/]

  2. 确保启动命令使用驱动器:\路径_to_cygwin_installation\bin\start

    • 您可以使用 where 命令进行验证:
          where start
  3. 创建一个 javac.sublime.build 系统

    • 这是我的,它可以得到改进
    {
    "cmd": ["javac.bat", "$file"],
    "file_regex": "^(...*?):([0-9]*):?([0-9]*)",
    "selector": "source.java"
    }
    
    
    • 确保更新您的环境变量路径,以便知道在哪里定位 javac.bat;我把我的放在 java_home 安装下面。
  4. 创建您的 javac.bat 文件并使其在您的环境路径上可用

    @echo off
    javac  -Xlint:unchecked %~n1.java 
    start java -ea %~n1
    
    
  5. 在我的示例中,我必须确保应用程序保持打开状态:

    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文件并将其放在新的Windows上。

1
步骤4可以按照以下方式修改,使终端保持打开状态:start cmd /k java -ea %~n1 - lac_dev
使用以下代码使新窗口保持打开状态: start cmd /k java -ea %~n1 - lac_dev
错误:找不到或加载主类HelloWorld。有解决方案吗? - Shail

-1

很遗憾,Sublime Text 2或3目前没有可用的解决方案

但我仍然喜欢它!所以我通常只是手动指定输入:

System.out.print("Enter Stack size: ");
//int input = br.readLine();
int input = 10;

留下必要的部分作为注释,以备将来需要输入运行程序时使用(事实上几乎从未需要)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接