Ну как и рекомендовали, скачал 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 программ не писал.
Здравствуйте, 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 программ не писал.
А приведи весь стэктрейс, сейчас непонятно какой именно "класс не найден".
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 лишь в структуре хранимых классов]
Здравствуйте, 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?
Здравствуйте, 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?
Да мне просто нужно проверить, что можно пакет юзать
Здравствуйте, 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.
Здравствуйте, wbear, Вы писали:
G>>Так при запуске тоже надо класспаз указывать,
W>Так вроде бы вот так запускаю.
W>jdb Example -classpath "F:\Program Files\Vediamo\Java\JVHandlersPackage.jar"
А скинь мне зипник проекта через rsdn files или ещё как, попробую у себя запустить.
Здравствуйте, 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"
я конечно фиг знает, так бывает правильно, но подозрительно
Здравствуйте, 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
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, со следующим содержанием
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