求解关于JNative在64位服务器上不能加载自身动态库的问题

myaimit myaimit 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
在当地机上一切正常,但在64位服务器上出现了下面的问题,开发运行环境和当地机一样:
请大家帮帮看看,谢谢!
异常:

---------------------------------------start-----------------------------------------
Exception in thread "main" java.lang.IllegalStateException: JNative library not loaded, sorry !
at org.xvolks.jnative.JNative.<init>(JNative.java:512)
at org.xvolks.jnative.JNative.<init>(JNative.java:440)
at com.test.mediainfo.MediaInfo.New(MediaInfo.java:99)
at com.test.mediainfo.MediaInfo.<init>(MediaInfo.java:88)
at com.test.mediainfo.TestMediaInfoClass.main(TestMediaInfoClass.java:13)

代码如下:

package com.test.jnative;

import org.xvolks.jnative.JNative;
import org.xvolks.jnative.exceptions.NativeException;
import org.xvolks.jnative.misc.basicStructures.AbstractBasicData;
import org.xvolks.jnative.pointers.Pointer;
import org.xvolks.jnative.pointers.memory.MemoryBlockFactory;
/**
* SystemTime
*
* typedef struct _SYSTEMTIME {
* WORD wYear;
* WORD wMonth;
* WORD wDayOfWeek;
* WORD wDay;
* WORD wHour;
* WORD wMinute;
* WORD wSecond;
* WORD wMilliseconds;
* } SYSTEMTIME,
*/
public class SystemTime extends AbstractBasicData<SystemTime> {

public short wYear;
public short wMonth;
public short wDayOfWeek;
public short wDay;
public short wHour;
public short wMinute;
public short wSecond;
public short wMilliseconds;

/**
* 分配内存,并返回指针
*/
public Pointer createPointer() throws NativeException {
pointer = new Pointer(MemoryBlockFactory.createMemoryBlock(getSizeOf()));
return pointer;
}

/**
* 内存大小
*/
public int getSizeOf() {
return 8 * 2;
}

/**
* 获取通过内存指针解析出结果
*/
public SystemTime getValueFromPointer() throws NativeException {
wYear = getNextShort();
wMonth = getNextShort();
wDayOfWeek = getNextShort();
wDay = getNextShort();
wHour = getNextShort();
wMinute = getNextShort();
wSecond = getNextShort();
wMilliseconds = getNextShort();
return this;
}

public SystemTime() throws NativeException {
super(null);
createPointer();
}

public String toString() {
return wYear + "/" + wMonth + "/" + wDay + " at + " + wHour + ":" + wMinute + ":" + wSecond
+ ":" + wMilliseconds;
}

public static SystemTime GetSystemTime() throws NativeException, IllegalAccessException {
// 创建对象
JNative nGetSystemTime = new JNative("Kernel32.dll", "GetSystemTime");
SystemTime systemTime = new SystemTime();
// 设置参数
nGetSystemTime.setParameter(0, systemTime.getPointer());
nGetSystemTime.invoke();
// 解析结构指针内容
return systemTime.getValueFromPointer();
}

public static void main(String[] args) throws NativeException, IllegalAccessException {
System.err.println(GetSystemTime());
}

}


服务器信息如下所示:
...全文
评论
收藏 已收藏
分享
返回顶部
myaimit
Java 51,407 成员 86,130 内容