2014-10-02 5 views
0

Я пытаюсь создать Java-программу, но я хочу, чтобы она была открыта C++.Как открыть Java-программу с помощью C++

я это с помощью в C++

system("java -jar MMQ4.jar"); 

Но это требует пользователям добавлять C: \ Program Files \ Java \ jre7 \ Bin \ к их PATH переменной окружения

Итак, является их другой способ запустить Java-программу с использованием C++?

+0

Где-то, путь к Должна быть указана Java. Другой вариант - указать путь в самой команде system(). –

+2

Как запустить программу Java из командной строки? – PaulMcKenzie

+0

im guessing он сам не знает :-) – specializt

ответ

0

Одно из решений, не хорошо на мой взгляд:

system("export LD_LIBRARY_PATH=\"<java_path>\" && java -jar MMQ4.jar"); 

Это решение справедливо для Unix С.О.

Для окон, посмотрите here.

обновление:

Кстати, если я понимаю, что ваши намерения, вы должны использовать:

fork 
exec 
wait 

, а не системы.

const int pid = fork(); 
execv("java", "-jar MMQ4.jar""); 

Таким образом, у вас есть ссылка на процесс PID и убейте его, когда захотите.

+0

Вы также можете изменить среду для процесса, прежде чем запускать ее. –

+0

Sry. Я действительно новичок в C++ – Moody3939

0

Вы пытались использовать опцию -classpath для интерпретатора Java. Прошло некоторое время с тех пор, как я использовал Java, но в прошлом это сработало бы.

1

Запуск java-файлов НЕ требует, чтобы пользователь добавлял что-то в переменные среды, это просто неправильно, поскольку Java-установщик уже делает это автоматически.

Если вы не можете запустить java-двоичный код, не добавляя что-то в среду, ваша JRE ошибочна, и вам нужно переустановить. Пожалуйста, не верьте всему, что вы читаете на интернет-форумах, это утверждение - действительно старый миф, это было правдой около 5 лет назад для JDK-релизов, но каждый из них после этого .... не так много

+0

Я его протестировал. И люди, которые запускали инсталляторы, не имели доступа к команде java – Moody3939

+0

либо они врет, либо устанавливают ОЧЕНЬ старые версии java (я считаю, что до 1.6). Просто как тот. Возможно, некоторые инсталляторы, не связанные с оракулом, могут также дать вам ошибочную настройку, конечно, oracle-java - лучшая java – specializt

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