java - System.in 输入,java 但带有 apache ant

标签 java ant system.in

我以交互方式添加了几个 system.in 输入(用户输入)。我已经创建了可执行 jar,我正在使用 apache ant 来编译和运行程序。 当我用 java -jar jarfile.jar 执行它时,程序交互良好并通过缓冲阅读器 system.in 获取用户输入,但是当我通过 ant run 通过 apache ant 运行它时, 它在第一次输入后挂起。

为什么对于 apache ant,它不接收通过键盘输入的 System.in 输入?

我是否必须在 apache ant 的运行目标 java 任务中添加一些内容?

最佳答案

不允许从任务读取控制台输入。

但是您可以使用 ant 从用户那里获取控制台输入,并将其传递给 Java 程序的命令行参数。

以下是示例 ant 脚本,它从用户那里获取输入并将其传递给 java 程序。 Java 程序正在打印它。

Ant 脚本:

<project name="Testing" basedir="../bin" default="run">
  <target name ="run">
    <property name="name" value="Test"/>
    <input message="Enter your Name :" addproperty="inputvalue"  defaultvalue="n" />
    <echo message="${inputvalue}"/>
        <java classname="${name}" failonerror="true" dir="${basedir}" spawn="false" fork="false"  >
        <classpath>
            <pathelement location="${basedir}" />
        </classpath>
        <arg value="${inputvalue}"/>
    </java>
  </target>
</project>

Java 程序:

public class Test {

public static void main(String[] args) throws IOException {

        System.out.println("Hello " + args[0]);  
}
}

关于java - System.in 输入,java 但带有 apache ant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19352495/

相关文章:

android - 在 android ant 中构建库项目时将 classes.jar 重命名为 <project_name>.jar

java - Java中System.out的类型是什么?

java - Servlet 映射问题 - 我做错了什么?

java - 使用 Apache POI 更新 XWPFParagraph 的文本

java - ant 构建文件中的 Guava

ant - 如何从 .jar 文件中提取 .class 文件?

java - 从扫描仪获取输入并确定有效日期

java - 创建两个 BufferedReader 会关闭输入流吗?

java - 自定义序列化器仅适用于属性,不适用于类

java - 从 Google App Engine Java 连接到本地 MySQL 实例时出错。