Jump to content
СофтФорум - всё о компьютерах и не только

Как открыть нативную консоль системы из java программы?


Recommended Posts

Нет, все таки коммандную строку :)

Но так как это делают нативные бинарники (в windows двойным щелчком), а не внешними средствами типа .bat, .sh, .desktop и т.п.

Link to comment
Share on other sites

ShellExecute

http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153(v=vs.85).aspx

 

Осталось сообразить, как это использовать в ява. :)


А, в java надо юзать Runtime.getRuntime().exec

 

http://docs.oracle.com/javase/7/docs/api/java/lang/Runtime.html

Edited by Teddy_Bear
Link to comment
Share on other sites

Данная функция предполагает выполнение внешней команды.

 

В моем случае программа использует стандартную консоль системы, получаемую System.console(), но в случае открытия двойным щелчком, консоль отсутствует, функция возвращает null, а потому нужна функция которая откроет консоль, доступную через System.console(). :)

Link to comment
Share on other sites

Боюсь, что не выйдет. По документации к консоли:

http://docs.oracle.com/javase/6/docs/api/java/io/Console.html

If the virtual machine is started automatically, for example by a background job scheduler, then it will typically not have a console.

Если виртуальная машина запускается автоматически, например, в фоновом задании планировщика, то, как правило, вы не имеете доступа к консоли.

Это баг #122429 Эклипса, если Вы работаете в этой IDE.

 

Попробуйте запустить приложение без IDE в чистом виде. (Это первое, что надо пробовать. Недавно уже был вопрос, который решился таким простым методом о котором даже не додумался упомянуть, так как это подразумевается в первую очередь. Многие непонятные ошибки так снимаются - глюки IDE).

Link to comment
Share on other sites

Кажется стоило начать с начала. Тогда по порядку...

Среда разработки Netbeans.

Пишу программу, собираю нативный пакет встроенными средствами.

Боюсь, что не выйдет. По документации к консоли: http://docs.oracle.c...io/Console.html If the virtual machine is started automatically, for example by a background job scheduler, then it will typically not have a console.

Фактически exe загрузчик запускает пакет аналогичным образом, то есть консоль в принципе отсутствует но...

При написании программы например на си, при попытке вывода в консоль, она открывается автоматически при отсутствии.

Отсюда предполагаю, что в Java может быть какая-нибудь функция создающая консоль, что то вроде showConsole() или createNewConsole(), не просто возвращающей, а открывающей и возвращающей консоль.

Link to comment
Share on other sites

Может быть ещё попробовать использовать вставку Си кода (вызова консоли) в Яву с помощью JNI. Но там очень геморройно и без гарантии успеха.

http://www.javaportal.ru/java/articles/java_and_cpp.html

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...