Как заставить exe-файл писать текст в командной строке?

У меня есть консольное приложение Java, которое записывает текст в командную строку. Когда я использую jar-файл, он отлично работает. Но когда я создаю exe-файл и работаю с ним, приложение ничего не пишет в командную строку. Если я пишу в cmd myapp.exe writeSomething > output.txt, я вижу выводимый текст в output.txt. Что мне нужно сделать, чтобы myapp.exe начал записывать текст в командную строку?

Я использую плагин launch4j-maven.

Это моя конфигурация:

<plugin>
    <groupId>com.akathist.maven.plugins.launch4j</groupId>
    <artifactId>launch4j-maven-plugin</artifactId>
    <version>1.5.2</version>
    <executions>
        <execution>
            <id>l4j-clui</id>
            <phase>package</phase>
            <goals>
                <goal>launch4j</goal>
            </goals>
            <configuration>
                <headerType>gui</headerType>
....

person RuF    schedule 11.07.2014    source источник
comment
Ключевым здесь является то, какой инструмент и как именно создал исполняемый файл.   -  person peter.petrov    schedule 11.07.2014
comment
Я использовал launch4j-maven-плагин   -  person RuF    schedule 11.07.2014
comment
Что я могу использовать, чтобы exe-файл мог записывать текст в cmd?   -  person RuF    schedule 11.07.2014
comment
Вам нужно сделать консольный exe, а не GUI exe.   -  person Noodles    schedule 11.07.2014
comment
Покажите, пожалуйста, ваш конфиг для launch4j, мой хрустальный шар в данный момент не используется...   -  person Serge Ballesta    schedule 11.07.2014
comment
Что ж, даже после того, как вы знаете решение, вы должны оставить неверную конфигурацию в вопросе, чтобы это было полезно для других людей, посещающих StackOveflow. Пожалуйста, оставьте исходную неправильную конфигурацию, содержащую <headerType>gui</headerType>, и удалите все строки ниже этой. Таким образом, другие научатся на вашей ошибке, и ваш вопрос станет полезным для всех.   -  person Honza Zidek    schedule 11.07.2014
comment
#Honza Zidek, после EDIT я написал как решил проблему. Конфиг для launch4j я написал потому что #Serge Ballesta попросил.   -  person RuF    schedule 11.07.2014
comment
Я полагаю, что Серж Бальеста тоже хотел видеть только параметр <headerType>. И вам не нужно редактировать вопрос с решением. Как я уже сказал, вопросы должны оставаться для других, совершающих те же ошибки. Если убрать весь ненужный балласт (здесь вся конфигурация после <headerType>), просто оставить здесь его исходное значение gui, то принятие моего ответа вместе с вашим комментарием ниже Спасибо! Оно работает! будет ориентироваться на других.   -  person Honza Zidek    schedule 11.07.2014


Ответы (1)


Ваш POM-файл должен содержать что-то вроде

<plugin>
    <groupId>com.akathist.maven.plugins.launch4j</groupId>
    <artifactId>launch4j-maven-plugin</artifactId>
    <executions>
        <execution>
            <id>l4j-clui</id>
            <phase>package</phase>
            <goals><goal>launch4j</goal></goals>    
            <configuration>
                <headerType>console</headerType> 
                ....
            </configuration>

Строка <headerType>console</headerType> является ключевой.

Таким образом, он будет генерировать EXE-файл как консольное приложение, а не приложение с графическим интерфейсом.

Подробнее см. https://github.com/lukaszlenart/launch4j-maven-plugin. .

person Honza Zidek    schedule 11.07.2014
comment
@ user3186861 - с удовольствием! :) Кстати, в следующий раз - интересно, как я нашел ответ? Раньше я ничего не знал о плагине. Вот инструкция: bit.ly/1w9zNwg - самая первая ссылка... - person Honza Zidek; 11.07.2014