我在 Eclipse EE (jdk 1.8) 中有一个 Maven 项目,我在命令行上使用 Maven 来构建和执行程序,使用以下命令:
mvn clean install exec:exec
所有依赖项都已添加到 pom.xml 文件中,我使用的是 Maven 3.6.3。现在,假设我的主要方法如下:
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter string: ");
String str = input.nextLine();
}
}
现在,当我构建并运行它时,它会提示在输出“输入字符串:”之前提供输入。同样在向控制台输入内容后,它也不会出现。只有当按下 Enter 键时,才会显示键入的文本,后跟“Enter string:”。
现在如果代码如下:
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter string: ");
String str = input.nextLine();
}
}
它首先输出“输入字符串:”,然后是提示。但是,在这里,键入的文本也仅在按 Enter 后出现。
但是,当在 Eclispe 中完成 Maven 构建时,键入的文本会毫无问题地显示出来。但是,存在“在打印语句之前输入”。
我想解决这些问题,因为我更喜欢 Maven 命令行。
这是 maven-exec-plugin 的配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<configuration>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<classpath />
<argument>package_name.Main</argument>
</arguments>
</configuration>
</plugin>