2017-02-22 29 views
-2

enter image description hereClassNotFoundException даже JDBC после ojdbc6.jar

Когда я запускаю код я получаю ClassNotFoundException.I подумал, что это из-за ojdbc6.jar file.i скачали файл с Oracle и скопировать файл на свой подкаталог с где я запускаю код в командной строке. Однако, я все еще получаю ошибку. Может кто-нибудь помочь мне понять, что я делаю неправильно? enter image description here

+0

вы компиляции класса, включая банку? – emotionlessbananas

+0

Добавьте 'ojdbc6.jar' в свой' CLASSPATH' и повторите попытку. –

+0

Какова ваша версия java –

ответ

3

У вас возникла эта проблема, потому что файл класса, который вы пытаетесь запустить, зависит от файла jar, называемого ojdbc6.jar. Во-первых, вам нужно скомпилировать как файл jar, так и файл класса.

1) Сначала поместите свой файл jar в тот же каталог, где у вас есть код Java.

2) Затем скомпилировать как, фляги и Java файл:

javac -cp ".:/path_of_jar_file_found_using_pwd/ojdbc6.jar" MyJavaFile.java 

3) Теперь запустите и как:

java -cp ojbdc6.jar:. MyJavaFile 

Это должно работать на Mac/Linux или другой основе Unix system.For окна, заменить : на ;.

+0

Да, это работает! Спасибо! –

0

Как уже упоминались в моем комментарии выше, вы могли бы рассмотреть возможность добавления ojdbc6.jar к вашим CLASSPATH переменным или вы можете добавить эту баночку под папкой %JAVA_HOME%\jre\lib\ext так, чтобы extension загрузчика классов будет в состоянии загрузить необходимый файл класса.

SET CLASSPATH = %CLASSPATH%;C:/JARS/ojdbc6.jar; 

Вы можете легко проверить необходимый класс, является ли часть приложения с помощью CTRL + SHIFT + T, так как он определяет классы из добавленных файлов JAR, а также.

Надеюсь, это поможет!

1

Откуда вы используете свою программу? На скриншоте я вижу, что вы используете его с терминала

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

java -cp "Test.jar;lib/*" my.package.MainClass 

Если вы хотите необходимые баночки, вы можете установить переменную пути к классам в окнах с помощью следующей команды и добавить необходимые банки к существующей переменной пути к классам

SET CLASSPATH = %CLASSPATH%;Test.jar;C:/username/Test1.jar 

И потом, вы можете запустить Java программа обычно

java SimpleInsert 

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

См эту должность для получения дополнительной информации Setting multiple jars in java classpath

+0

Я запускаю его на Mac, который похож на unix. Итак, как мне установить classpath для этого? Я думаю, что команда mac для этого должна быть похожа на Linux. Хотя я уже принял чужой ответ, если вы можете ответить на это, я отвечу на ваш ответ. И спасибо вам заранее. –

+0

А также что такое java -cp "lib/*"? В Test, jar, вы имеете в виду мой файл ojdbc6.jar? И my.package.MainClass, вы имеете в виду файл .java? –

+0

Я не уверен в Mac, но в unix вы можете использовать этот 'export CLASSPATH = $ CLASSPATH: /home/user/ojdbc6.jar:/lib/*' перед запуском вашей программы. И .. java -cp "lib/*" добавит все файлы jar, присутствующие в папке/lib. Это полезно, если вы используете больше банок. Вы можете поместить их в папку lib (или любую папку по вашему выбору) и добавить всю банку, присутствующую в этой папке, с помощью вышеуказанного шаблона используйте «lib/*», – ShankarDaruga