当前位置: 首页 > 知识库问答 >
问题:

System.in输入,java,但使用apache ant

孙斌
2023-03-14

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

为什么使用apache ant,它不接受通过键盘输入的System.in输入?

我必须在apache ant的run target java任务中添加一些东西吗?

共有1个答案

齐永昌
2023-03-14

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

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

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

蚂蚁脚本:

<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文件的系统输入中读取内容。 我想可以打电话 我想在哪里将文件作为字符串读取并在main方法中提供给myProg。 有什么建议么? 问题答案: 你可以使用来读取标准输入。它的工作原理就像从键盘输入它一样。操作系统处理从文件到标准输入的操作。

  • 问题内容: 我在Netbeans中有一个小型Java测试应用程序,该类从中读取输入。如何打开可在其中输入输入的窗口?(我在Windows 7上使用NB 6.7.1)。 问题答案: 可能并不明显,但是在Netbeans中,如果您的主线程正在等待输入,则底部的“输出”选项卡也会接受输入。只需在最后一个输出行下键入,然后按Enter。换句话说,“输出”选项卡与控制台窗口相同。

  • 这是一个可以用作重复目标的规范问题/答案。这些需求基于每天发布的最常见的问题,并可能根据需要添加到。它们都需要相同的基本代码结构来到达每个场景,并且它们通常相互依赖。 大多数问题都包括在以上一个操作中失败的尝试。 > 我希望能够让我的程序自动等待下一个输入后,每个先前的输入以及。 我想知道如何检测一个退出命令,并结束我的程序时,该命令输入。 在Java世界中,是一个特例,它是一门极其挑剔的课,老师

  • 问题内容: 在我们的应用程序中,我们希望用户输入如下: 我想在单元测试中通过该部分,以便我可以恢复线程以执行其余代码。我如何从junit 写入内容? 问题答案: 你想要做的是使用的方法从。这将使您可以从junit 传递数据。

  • 问题内容: 声明为。 但是你可以致电重新分配它。 ??如果是这样怎么可能? (和适用于) 更重要的是,如果你可以对public static final字段进行突变,那么就可以为你提供的保证(如果有)意味着什么?(我从未意识到,也没想到System.in/out/err表现为变量) 问题答案: 通常,最终的静态字段可能不会被修改。然而和是,由于遗留原因,必须允许通过方法来改变最终的静态字段和。我们

  • 我想在提取一些数据时使用外部工具(循环通过行)。为此,我首先使用了Runtime.getRuntime()。exec()执行它。但后来我的提取变得很慢。所以我在寻找一种可能性,在循环的每个实例中,使用shell的同一个实例来执行外部工具。 我发现,我应该使用ProcessBuilder。但是现在还不行。 这是我测试执行的代码(已经从论坛中的答案输入): 我想在另一个类中调用它,例如 Testcla