powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / java jni c++
11 сообщений из 11, страница 1 из 1
java jni c++
    #38440637
TimRX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.


Средствами vc 2010 создал dll. В java классе загружаю библиотеки в адресное пространство JVM.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public class NativeLibraryCallsDef {
    static {
        System.loadLibrary("DeviceInfo");
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        Vector vector;
        vector = getDiscribInfo("SELECT * FROM Win32_NetworkAdapter","Name")  ;
        System.out.println(vector);
    }
    native public static Vector getDiscribInfo(String str,String strPropertyDevice) ;
}



Проблема в том что при отладки программы дебагером в java и подключением к процессу cpp файла библиотеки в vc 2010 программа отрабатывает правильно.
Без подключения исходника вылетает ошибка
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x77122d37, pid=268, tid=2104
#
# JRE version: 7.0_05-b05
# Java VM: Java HotSpot(TM) Client VM (23.1-b03 mixed mode windows-x86 )
# Problematic frame:
# C  [ntdll.dll+0x52d37]  RtlFreeHeap+0xcd
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# C:\Users\admin\Documents\NetBeansProjects\NativeLibraryCallsDef\src\nativelibrarycallsdef\hs_err_pid268.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Java Result: 1



В чем тут может быть ошибка ?
...
Рейтинг: 0 / 0
java jni c++
    #38440765
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это для кого вообще написано?
# An error report file with more information is saved as:
# C:\Users\admin\Documents\NetBeansProjects\NativeLibraryCallsDef\src\nativelibrarycallsdef\hs_err_pid268.log
...
Рейтинг: 0 / 0
java jni c++
    #38441044
TimRX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczА это для кого вообще написано?
# An error report file with more information is saved as:
# C:\Users\admin\Documents\NetBeansProjects\NativeLibraryCallsDef\src\nativelibrarycallsdef\hs_err_pid268.log

Извиняюсь... забыл выложить.
...
Рейтинг: 0 / 0
java jni c++
    #38441060
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JRE 1.7.0_05-b05 это что за древность такая. Уж обновить такое старье точно стоило с учетом последний эксплоитов.
...
Рейтинг: 0 / 0
java jni c++
    #38441065
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваша ведь DLL крашится. Java тут, как бе, не при чем.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
C  [ntdll.dll+0x52d37]  RtlFreeHeap+0xcd
C  [ntdll.dll+0x52ce8]  RtlFreeHeap+0x7e
C  [ntdll.dll+0x6e1aa]  RtlDosSearchPath_Ustr+0x46e
C  [ntdll.dll+0x58d08]  LdrGetDllHandleEx+0x1ef
C  [ntdll.dll+0x58b10]  LdrGetDllHandle+0x18
C  [KERNELBASE.dll+0x876c]  GetModuleHandleW+0x51
C  [KERNELBASE.dll+0x8666]  CompareStringA+0x235
C  [KERNELBASE.dll+0xb5bf]  GetModuleHandleExW+0x2b
C  [ole32.dll+0x4219d]  CoCreateGuid+0xbc8
C  [ole32.dll+0x409db]  CoInitializeEx+0x2e
C  [DeviceInfo.dll+0x1175e]  
...
Рейтинг: 0 / 0
java jni c++
    #38441069
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исключения не пробовали внутри DLL ловить? Иногда помогает.
...
Рейтинг: 0 / 0
java jni c++
    #38441694
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimRXСредствами vc 2010 создал dll. В java классе загружаю библиотеки в адресное пространство JVM.
В чем тут может быть ошибка ?

Налицо ошибка в выборе средства программирования.
Нафига на Java использовать непереносимый native, да ещё и с COM/OLE ?
...
Рейтинг: 0 / 0
java jni c++
    #38446090
TimRX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczИсключения не пробовали внутри DLL ловить? Иногда помогает.

Спасибо .. Ошибку исправил все работает , но только на том компьютере на котором создал dll. На любом другом :
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\Users\admin\I
nventory\DeviceInfo.dll: Can't find dependent libraries
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1957)
        at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1882)
        at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1872)
        at java.lang.Runtime.loadLibrary0(Runtime.java:849)
        at java.lang.System.loadLibrary(System.java:1087)
        at nativelibrarycallsdef.NativeLibraryCallsDef.<clinit>(NativeLibraryCal
lsDef.java:17)
        at _a_inventoryServer.Controller.getValuesOfDevices(Controller.java:68)
        at _a_inventoryServer.Controller.startServer(Controller.java:151)
        at _a_inventoryServer.View.<init>(View.java:20)
        at _a_inventoryServer._A_InventoryServer.main(_A_InventoryServer.java:28
)


инклуды библиотеки DeviceInfo.dll

DeviceInfo.cpp
Код: plaintext
1.
2.
#include "stdafx.h"
#include "nativelibrarycallsdef_NativeLibraryCallsDef.h"



stdafx.h
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
#pragma once

#include "targetver.h"

#define WIN32_LEAN_AND_MEAN
#include <Windows.h>  
#include <iostream>  
#include <WbemCli.h>  
#include <comdef.h>

#pragma comment(lib, "wbemuuid.lib")  



nativelibrarycallsdef_NativeLibraryCallsDef.h
Код: plaintext
1.
#include <jni.h>



Он эти библы ищет ?
...
Рейтинг: 0 / 0
java jni c++
    #38446114
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimRX, а всякие -Djava.library.path=C:\path\to\library не надо разве?
...
Рейтинг: 0 / 0
java jni c++
    #38446132
TimRX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не .. не надо
...
Рейтинг: 0 / 0
java jni c++
    #38446282
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, четко же сказано "Can't find dependent libraries". Одна DLL не может найти другую DLL. При чем тут вообще Java?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / java jni c++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]