2013-12-05 4 views
0

Я не могу запустить c исполняемый файл из java-программы в ubuntu.Как запустить c исполняемый файл из java-программы в ubuntu

Я создал исполняемый файл, используя следующую команду:

gcc ex.c -o process 

В Java программы я пробовал все, что я не мог найти, но никакого результата.

Runtime.getRuntime().exec("/home/cori/Desktop/process.exe); 

другой метод

Runtime rt = Runtime.getRuntime(); 
Process proc = rt.exec("process"); 

Просьба предложить.

+1

Есть ли исключения? Вы зачитывали результат? http://stackoverflow.com/questions/4741878/redirect-runtime-getruntime-exec-output-with-system-setout – deterministicFail

+0

здесь, в этом примере процесс - это исполняемый файл, который читает из текстового файла и создает файл jpg. Когда я запускаю его двойным щелчком по нему, он отлично работает, но не с кодом Java –

+0

никаких исключений не выбрасывается. –

ответ

0

* nix подобные системы не используют посттекст * .exe для исполняемых файлов.

Runtime.getRuntime(). Exec ("/ главная/Cori/Desktop/процесс")

должен работать нормально. Но я до сих пор не понимаю, какой результат вы хотите получить. Единственное, что вы можете получить от класса Process, - это несколько потоков и его статус возврата. Какая для вас программа c должна быть равна 0. (если вы вернули 0, завершите свой исходный код).

И: 2 метода, которые вы упомянули, одинаковы. Просто первый использует что-то вызов метода chaining :)

+0

Я пробовал без использования .exe. нет выхода. Мой исполняемый файл будет считывать данные из файла и преобразовывать его в файл формата jpg. Я просто хочу использовать java-код, так что при нажатии кнопки этот исполняемый файл можно вызвать и создать jpg-образ на рабочем столе. –

0

Я предполагаю, что у вас есть доступ к C-коду, потому что я вижу, что вы пытаетесь его скомпилировать.

Считаете ли вы использование Java Native Inteface? Java позволяет вам вызывать не-Java-код, обычно называемый собственным кодом.

Вам необходимо выполнить последовательность шагов, чтобы заставить его работать. Смотрите пример здесь http://www3.ntu.edu.sg/home/ehchua/programming/java/JavaNativeInterface.html

  1. Создание класса Java с нативным методом
  2. Загрузите библиотеку, которая реализует метод
  3. Invoke нативный метода из Java
  4. Используйте javah утилита для создания файла заголовка
  5. Создать код c для реализации метода java stub
  6. скомпилировать c программу tp create .so или .dll (в зависимости от ОС)
  7. Set LD_LIBRARY_PATH
  8. Выполнить код Java

Это длительный процесс, и он требует некоторых проб и ошибок, чтобы получить это право. Но как только вы это выясните, это действительно мощный инструмент. Это очень старая функция Java, поэтому в Интернете есть много ресурсов.

Смежные вопросы