Как мне определить командную строку, которую eclipse использует для запуска моей Java-программы? - PullRequest
7 голосов
/ 01 декабря 2011

У меня есть простая java-программа, сокеты, зависимости AWT и jUnit.

Я построил ее в eclipse, и когда я запускаю / отлаживаю ее из eclipse, она работает.Когда я запускаю его из командной строки, я получаю сообщение об ошибке:

Exception in thread "main" java.lang.NoClassDefFoundError

Я предполагаю, что это связано с тем, что он не обнаружил одну из необходимых зависимостей в пути к классам.Eclipse работает, есть ли способ определить, что Eclipse командной строки использует для запуска той же программы?

Ответы [ 3 ]

13 голосов
/ 01 декабря 2011

Похоже, ваш путь к классу не установлен должным образом, когда вы пытаетесь запустить через командную строку.Вы можете легко экспортировать команду, которую использует Eclipse, выполнив следующее:

  1. Запустите ваше приложение и перейдите к своей перспективе Debug
  2. В средстве просмотра процесса должна быть запись для приложения, которое вытолько что выполнили
  3. Щелкните правой кнопкой мыши строку, в которой упоминается java.exe или javaw.exe
  4. Выберите Свойства
  5. В появившемся диалоговом окне вы увидите командуСтрока, содержащая все записи и аргументы classpath
1 голос
/ 01 декабря 2011

Вы задаете 2 разных вопроса здесь.

Вы можете проверить путь к классам вашего Java-проекта, щелкнув правой кнопкой мыши на имени проекта и щелкнув левой кнопкой мыши на опции Свойства внизу.

В диалоговом окне «Свойства» при щелчке левой кнопкой мыши на пути сборки Java открывается диалоговое окно «Путь сборки».

Если вы хотите определить строку командной строки Eclipse, вы посмотрите на Run Configurations. В меню щелкните левой кнопкой мыши «Выполнить», затем левой кнопкой мыши щелкните «Запустить конфигурации». Под Приложением Java вы должны найти конфигурацию запуска для вашего проекта. На вкладке Аргументы показано, как Eclipse запускает ваш проект Java.

1 голос
/ 01 декабря 2011

Путь к классу, который будет использовать Eclipse, должен быть виден в диалоге свойств вашего проекта ...

Или, в Unix-подобной системе, вы можете обмануть, что-то вроде (Linux / Fedora) ps axww | grep javaчтобы посмотреть текущую командную строку.

В Linux, в частности, /proc/ pid /cmdline выдаст всю командную строку (разделенную символами '\ 0',поэтому, если вы просто cat файл), то и /proc/ pid /environ покажут переменные окружения, если вам тоже нужно посмотреть на них.(например, CLASSPATH переменная окружения)

...