Включить Swing при компиляции с javac - PullRequest
4 голосов
/ 10 февраля 2011

Я прекрасно скомпилирую и разархивирую исходный код, но когда я запускаю его, он жалуется:

java.lang.ClassNotFoundException: javax.swing.JPanel

Полагаю, мне нужно включить библиотеку Swing при компиляции, но как мне это сделать?

Я включил каждый rt.jar в моей системе:

javac -classpath /usr/lib/jvm/java-1.5.0-gcj-4.4/jre/lib/rt.jar:/usr/lib/jvm/java-6-sun-1.6.0.20/jre/lib/rt.jar:/usr/lib/jvm/java-6-openjdk/jre/lib/rt.jar:/home/me/equinox.jar *java

По-прежнему компилируется нормально, при запуске все равно вылетает.

Ответы [ 4 ]

2 голосов
/ 10 февраля 2011

Похоже, вы используете GCJ .Это старый проект, который пытался создать реализацию Java как чистый открытый исходный код.

Они достигли примерно половины пути, но реализация далека от совершенства.В наши дни лучше избегать этого целиком и вместо этого использовать OpenJDK (или Oracle / Sun JDK , если открытый код не требуется).

В Ubuntuвы можете использовать update-java-alternatives для настройки вашей системы на другую реализацию Java:

sudo update-java-alternatives -s java-6-openjdk

Кстати, вам никогда не нужно явно указывать rt.jarна вашем пути к классам, так как он всегда доступен автоматически.Кроме того, использование нескольких rt.jar из различных JVM - это путь к катастрофе.

0 голосов
/ 10 февраля 2011

Каков ваш текущий путь к JDK (в $ PATH или% PATH%)? Каков весь ваш путь? Какая у вас текущая переменная среды CLASSPATH? Ваша проблема связана со средой выполнения. Вы не должны добавлять rt.jar в ваш путь к классам. Если у вас правильная установка JVM, тогда java не нуждается в расположении к rt.jar и tools.jar. Я подозреваю, что у вас есть проблемы с подключением к JVM.

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

0 голосов
/ 10 февраля 2011

Вам не нужно включать rt.jar, он включен загрузчиком классов по умолчанию для Java vm.

Вам необходимо выяснить, какая версия java является стандартной:

java --version

если вы работаете в Ubuntu, скорее всего это будет openjdk java, что нормально.Если это gcj, попробуйте запустить его с openjdk или sun-jdk.

Также покажите, как именно вы запускаете jar.

0 голосов
/ 10 февраля 2011

Если вы запускаете код, компиляция работала нормально.Странно, что вам не хватает этого конкретного класса, поскольку он является частью стандартной библиотеки.В большинстве дистрибутивов Java это находится в rt.jar

...