При запуске java из Apache / PHP «не удалось найти основной класс»

Я пытаюсь разрешить apache и PHP выполнять Java-программу, которая выводит в std: out, но я получаю сообщение «Ошибка: не удалось найти или загрузить основной класс». Это все происходит на Распиане.

У меня есть мой index.php в var / www и моя java-программа в var / www / pathy-lang
Pathy.class, где мой main () находится, и я получаю ошибку, когда я пытаюсь выполнить java pathy-lang/Pathy либо в терминале, либо с помощью оператора backtick в моем PHP-файле. Pathy работает, если я нахожусь в той же директории, что и он, и выполняю java Pathy в командной строке.

Я бы предпочел использовать pathy-lang в другом месте (желательно где-то вроде / usr / local / lib), но я буду только думать о том, как только я получу его работающим в одной папке.

Я понимаю, что apache использует пользователя www-data для выполнения каких-либо задач, это вообще усложнит ситуацию?

Я предполагаю, что это связано с моими правами доступа к файлу, PATH или CLASSPATH. Но имея очень мало опыта работы с Linux, я понятия не имею, с чего начать пытаться разобраться в этом. Из-за ответа «not found» я предполагаю, что это ошибка PATH или CLASSPATH, но при ответе вы могли бы также указать настройку разрешения, как если бы была установлена ​​переменная PATH, которая, вероятно, станет следующим препятствием.

0

Решение

Друг помог мне и рассказал о опции -cp в java для определения пути к классам. Кажется, что моя догадка была правильной, потому что я установил classpath в .profile, он не будет работать ни для какого другого пользователя, кроме меня.

Определив полный путь к классу в параметре -cp, а затем указав, в каком классе находится main (), это сработало.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]