Подтвердить что ты не робот

Есть ли способ перенаправить входные данные из файла в stdin в Netbeans?

Я разрабатываю приложение с Netbeans и Maven. Мое приложение должно получать данные из stdin. Но я не мог понять, как это проверить. Ввод < data.txt в список args не работает.

Мне нужно то же самое, что:

$ java MyProgram < data.txt 
4b9b3361

Ответ 1

Это можно сделать, добавив свою собственную цель запуска в файл проекта build.xml. Например:

<target name="run" depends="jar">
  <exec dir="${work.dir}" executable="java" input="${work.dir}/inputfile.txt">
    <arg value="-jar"/>
    <arg file="${dist.jar}"/>
  </exec>
</target>

Обратите внимание, что такие команды, как Run, Debug и Test, используют ваш собственный файл build.xml, если функция Compile on Save отключена для проекта. Поэтому вам нужно будет убедиться, что Compile on Save отключен в ваших свойствах проекта.

Ответ 2

Я предполагаю, что у вас есть такая вещь:

public static void main(String[] args) {
...
}

Это может использоваться как точка входа в ваше приложение, и до этого вы меняете входной канал с помощью:

FileInputStream is = new FileInputStream(new File("test.data"));
System.setIn(is);

Вышеприведенное может быть использовано в тесте unit/integration.

Ответ 3

Я не уверен, как это происходит в NetBeans, но в eclipse вы можете написать что-то на консоль, и он перенаправляется как STDIN для запуска приложения. Я считаю, что то же самое должно работать и в NetBeans. Итак, просто запустите приложение, затем скопируйте/вставьте содержимое data.txt в консоль и, возможно, нажмите <ENTER>.

Если ничего не помогает использовать удаленную отладку, то есть запустите свою программу из командной строки следующим образом:

java -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=y MyProgram < data.txt

затем подключитесь к этому процессу из NetBeans.

Ответ 4

Старая школа, но это то, что я знал. Одно из предостережений заключается в том, что команда mvn не возвращается в cli, когда это делается, но для некоторых целей это приемлемо. Обратите внимание, что вы должны находиться в корневом каталоге проекта

mvn "-Dexec.args = -classpath% classpath com.mycompany.test" -Dexec.executable =/Downloads/jdk1.7/bin/java exec-maven-plugin: 1.2.1: exec </TMP/вход

Ответ 5

Добавьте новый целевой "run-input" в разделе Files- > build.xml со следующим текстом. Примечание. В этой версии используется правильное расположение среды java. Кроме того, предполагается, что вы создали каталог с входами с файлом input1.

<target name="run-input" depends="jar">
  <exec dir="${work.dir}" executable="${java.home}/bin/java" input="${src.dir}/inputs/input1">
    <arg value="-jar"/>
    <arg file="${dist.jar}"/>
  </exec>
</target>

Вы всегда можете создать ярлык для этой новой цели.