Ошибка при загрузке класса из пакета
От: wbear  
Дата: 03.02.21 09:40
Оценка:
Добрый день

Ну как и рекомендовали, скачал jdk1.7.0 поставил, настроил путь.

Написал тестовый пример (Example.class) с использованием пакета (HandlersPackage.jar), который предоставил заказчик. Через функции из пакета вызываются нативные функции из dll.

Однако при создании класса из пакета VClient client = new VClient(); программа падает с сообщением

Exception occurred: java.lang.ClassNotFoundException (uncaught) "thread=main", java.lang.ClassLoader.loadClass(), line = bci=

P.S. Может плохо что объяснил, просто на Java программ не писал.
Отредактировано 03.02.2021 9:50 wbear . Предыдущая версия .
Re: Ошибка при загрузке класса из пакета
От: gyraboo  
Дата: 03.02.21 09:52
Оценка:
Здравствуйте, wbear, Вы писали:

W>Ну как и рекомендовали, скачал jdk1.7.0 поставил, настроил путь.


W>Написал тестовый пример (Example.class) с использованием пакета (HandlersPackage.jar), который предоставил заказчик. Через функции из пакета вызываются нативные функции из dll.


W>Однако при создании класса из пакета VClient client = new VClient(); программа падает с сообщением


W>Exception occurred: java.lang.ClassNotFoundException (uncaught) "thread=main", java.lang.ClassLoader.loadClass(), line = bci=


W>P.S. Может плохо что объяснил, просто на Java программ не писал.


А приведи весь стэктрейс, сейчас непонятно какой именно "класс не найден".
Re[2]: Ошибка при загрузке класса из пакета
От: wbear  
Дата: 03.02.21 10:39
Оценка:
Здравствуйте, gyraboo, Вы писали:


G>А приведи весь стэктрейс, сейчас непонятно какой именно "класс не найден".


Юзаю jdb, так что если что не бейте сильно

Под "стэктрейс" Вы подразумеваете вот это?

Exception in thread: "main" java.lang.NoClassDefFoundError: VHandlers/JVClient
at Example.<init>(Example.java:16)
at Example.main(Example.java:65)
Caused by: java.lang.ClassNotFoundExceptin: VHandlers/JVClient
at java.net.URLClassLoader$1/run(URLClassLoader.java:3The application exited66)

P.S. Приведу информацию по сборке примера(Example.java)

Исходник Example.java
import JVHandlers.JVClient;

public class Example 
{ 
    JVClient client = new JVClient();

    public Example() 
    {
    }

    public static void main(String[] args) 
    {
         Example Ex_1 = new Example(); 
    }

}


Исходный файл(Example.java) вместе с VHandlersPackage.jar лежат в одном каталоге (F:\Java\1)
[Существует еще один файл VHandlers.jar. Различия между VHandlersPackage.jar и VHandlers.jar лишь в структуре хранимых классов]

Собираю следующей приложение (Example.class) следующей командой:
javac -cp "F:\Java\1\JVHandlersPackage.jar" "F:\Java\1\Example.java"


Отлаживать пытаюсь так:
jdb -classpath "F:\Java\1\" Example
Re[3]: Ошибка при загрузке класса из пакета
От: gyraboo  
Дата: 03.02.21 10:44
Оценка:
Здравствуйте, wbear, Вы писали:

G>>А приведи весь стэктрейс, сейчас непонятно какой именно "класс не найден".


W>Юзаю jdb, так что если что не бейте сильно


W>Под "стэктрейс" Вы подразумеваете вот это?


W>Exception in thread: "main" java.lang.NoClassDefFoundError: VHandlers/JVClient

W> at Example.<init>(Example.java:16)
W> at Example.main(Example.java:65)
W>Caused by: java.lang.ClassNotFoundExceptin: VHandlers/JVClient
W> at java.net.URLClassLoader$1/run(URLClassLoader.java:3The application exited66)

W>P.S. Приведу информацию по сборке примера(Example.java)


W>Исходник Example.java

W>
W>import JVHandlers.JVClient;

W>public class Example 
W>{ 
W>    JVClient client = new JVClient();

W>    public Example() 
W>    {
W>    }

W>    public static void main(String[] args) 
W>    {
W>         Example Ex_1 = new Example(); 
W>    }

W>}
W>


W>Исходный файл(Example.java) вместе с VHandlersPackage.jar лежат в одном каталоге (F:\Java\1)

W>[Существует еще один файл VHandlers.jar. Различия между VHandlersPackage.jar и VHandlers.jar лишь в структуре хранимых классов]

W>Собираю следующей приложение (Example.class) следующей командой:

W> javac -cp "F:\Java\1\JVHandlersPackage.jar" "F:\Java\1\Example.java"


W>Отлаживать пытаюсь так:

W> jdb -classpath "F:\Java\1\" Example

Он не находит класс VHandlers/JVClient.
Попробуй в параметре classpath указать путь ко всем джарникам, разделяя их двоеточиями.
А ещё лучше поставь IDEA Community Edition и комилилуй и дебажь там. Зачем мучить себя голым jdb?
Re[4]: Ошибка при загрузке класса из пакета
От: wbear  
Дата: 03.02.21 11:31
Оценка:
Здравствуйте, gyraboo, Вы писали:

G>Он не находит класс VHandlers/JVClient.

Про это прочитал.


G>Попробуй в параметре classpath указать путь ко всем джарникам, разделяя их двоеточиями.

Вроде бы как собираю приложение (Example.class) следующей командой:
javac -cp "F:\Java\1\VHandlersPackage.jar" "F:\Java\1\Example.java"

В которой я указываю что нужно собирать с VHandlersPackage.jar.


G>А ещё лучше поставь IDEA Community Edition и комилилуй и дебажь там. Зачем мучить себя голым jdb?

Да мне просто нужно проверить, что можно пакет юзать
Re[5]: Ошибка при загрузке класса из пакета
От: gyraboo  
Дата: 03.02.21 11:39
Оценка:
Здравствуйте, wbear, Вы писали:

G>>Он не находит класс VHandlers/JVClient.

W>Про это прочитал.


G>>Попробуй в параметре classpath указать путь ко всем джарникам, разделяя их двоеточиями.

W>Вроде бы как собираю приложение (Example.class) следующей командой:
W>javac -cp "F:\Java\1\VHandlersPackage.jar" "F:\Java\1\Example.java"

W>В которой я указываю что нужно собирать с VHandlersPackage.jar.


Так при запуске тоже надо класспаз указывать,
Re[6]: Ошибка при загрузке класса из пакета
От: wbear  
Дата: 03.02.21 12:15
Оценка:
Здравствуйте, gyraboo, Вы писали:


G>Так при запуске тоже надо класспаз указывать,


Так вроде бы вот так запускаю.

jdb Example -classpath "F:\Program Files\Vediamo\Java\JVHandlersPackage.jar"
Re[7]: Ошибка при загрузке класса из пакета
От: gyraboo  
Дата: 03.02.21 12:17
Оценка:
Здравствуйте, wbear, Вы писали:

G>>Так при запуске тоже надо класспаз указывать,


W>Так вроде бы вот так запускаю.


W>jdb Example -classpath "F:\Program Files\Vediamo\Java\JVHandlersPackage.jar"


А скинь мне зипник проекта через rsdn files или ещё как, попробую у себя запустить.
Re[8]: Ошибка при загрузке класса из пакета
От: wbear  
Дата: 03.02.21 12:36
Оценка:
Здравствуйте, gyraboo, Вы писали:


G>А скинь мне зипник проекта через rsdn files или ещё как, попробую у себя запустить.


Почту скиньте, заброшу проект
Отредактировано 03.02.2021 12:48 wbear . Предыдущая версия .
Re[7]: Ошибка при загрузке класса из пакета
От: GarryIV  
Дата: 03.02.21 13:34
Оценка:
Здравствуйте, wbear, Вы писали:

W>Так вроде бы вот так запускаю.


W>jdb Example -classpath "F:\Program Files\Vediamo\Java\JVHandlersPackage.jar"

а собираешь с другой либой

W>javac -cp "F:\Java\1\VHandlersPackage.jar" "F:\Java\1\Example.java"

я конечно фиг знает, так бывает правильно, но подозрительно
WBR, Igor Evgrafov
Re[9]: Ошибка при загрузке класса из пакета
От: gyraboo  
Дата: 04.02.21 07:31
Оценка:
Здравствуйте, wbear, Вы писали:

G>>А скинь мне зипник проекта через rsdn files или ещё как, попробую у себя запустить.


W>Почту скиньте, заброшу проект


В обсчем, вот так работает:

Компиляция (путь нужно указать к 32-битной JDK 1.7, т.к. dll 32-битная):
C:\Programs\Java\x32\jdk1.7.0_80\bin\javac.exe -cp JVHandlersPackage.jar Example.java

Запуск:
C:\Programs\Java\x32\jdk1.7.0_80\bin\java.exe -classpath .;JVHandlersPackage.jar Example

Запуск дебагером:
C:\Programs\Java\x32\jdk1.7.0_80\bin\jdb.exe -classpath .;JVHandlersPackage.jar Example
и далее run

Обрати внимание, что компилировать и запускать надо под 32-битной JDK.

Только теперь ругается сама dll при её вызове:
VHandlers.dll: Can't find dependent libraries
Если посмотреть её анализатором типа Dependencies, то видно, что не хватает ещё других dll: VCommon_c.dll и VServer_c.dll
Re[10]: Ошибка при загрузке класса из пакета
От: wbear  
Дата: 05.02.21 09:27
Оценка:
Здравствуйте, gyraboo, Вы писали:


G>Компиляция (путь нужно указать к 32-битной JDK 1.7, т.к. dll 32-битная):

G>C:\Programs\Java\x32\jdk1.7.0_80\bin\javac.exe -cp JVHandlersPackage.jar Example.java

G>Запуск:

G>C:\Programs\Java\x32\jdk1.7.0_80\bin\java.exe -classpath .;JVHandlersPackage.jar Example

G>Запуск дебагером:

G>C:\Programs\Java\x32\jdk1.7.0_80\bin\jdb.exe -classpath .;JVHandlersPackage.jar Example
G>и далее run

Все работает. Спасибо за волшебную точку.

Еще раз — большущее спасибо.

Еще хотел спросить за зборку в jar архив.

Файлы JVHandlersPackage.jar и Example.java находятся в одном каталоге.

Создал файлик MANIFEST.txt, со следующим содержанием

Main-Class: Example

Создаю архив следующей командной
jar.exe -cfm Example.jar manifest.txt JVHandlersPackage.jar Example.java
Re[11]: Ошибка при загрузке класса из пакета
От: gyraboo  
Дата: 05.02.21 09:29
Оценка:
Здравствуйте, wbear, Вы писали:


G>>Компиляция (путь нужно указать к 32-битной JDK 1.7, т.к. dll 32-битная):

G>>C:\Programs\Java\x32\jdk1.7.0_80\bin\javac.exe -cp JVHandlersPackage.jar Example.java

G>>Запуск:

G>>C:\Programs\Java\x32\jdk1.7.0_80\bin\java.exe -classpath .;JVHandlersPackage.jar Example

G>>Запуск дебагером:

G>>C:\Programs\Java\x32\jdk1.7.0_80\bin\jdb.exe -classpath .;JVHandlersPackage.jar Example
G>>и далее run

W>Все работает. Спасибо за волшебную точку.


W>Еще раз — большущее спасибо.


W>Еще хотел спросить за зборку в jar архив.


W>Файлы JVHandlersPackage.jar и Example.java находятся в одном каталоге.


W>Создал файлик MANIFEST.txt, со следующим содержанием


W>Main-Class: Example


W>Создаю архив следующей командной

W>jar.exe -cfm Example.jar manifest.txt JVHandlersPackage.jar Example.java

А в чём именно вопрос-то, я не совсем понял?
Re[12]: Ошибка при загрузке класса из пакета
От: wbear  
Дата: 05.02.21 10:26
Оценка:
Здравствуйте, gyraboo, Вы писали:

Подразобрался с проблемой.

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.