在MyEclipse里面调用Dll的方法。报Exception in thread "main" java.lang.UnsatisfiedLinkError

w111222j 2011-10-17 10:07:01
让别人用C帮我写的一个DLL,用来传递一个进程名称,然后杀掉和进程名字相同的进程。

我在CMD里面用javac的方式运行
D:\>javac Process_.java

D:\>java Process_
======
start
[System Process]
System
smss.exe
csrss.exe
wininit.exe
csrss.exe
services.exe
lsass.exe
lsm.exe
winlogon.exe
svchost.exe
svchost.exe
svchost.exe
svchost.exe
svchost.exe
svchost.exe
ZhuDongFangYu.exe
svchost.exe
spoolsv.exe
svchost.exe
Connectifyd.exe
raysat_3dsmax2011_32server.ex
raysat_3dsmax2011_64server.ex
mysqld-nt.exe
isqlplussvc.exe
TNSLSNR.EXE
oracle.exe
java.exe
tenpaycert.exe
svchost.exe
vmnat.exe
WLIDSVC.EXE
vmware-authd.exe
WLIDSVCM.EXE
conhost.exe
vmnetdhcp.exe
WmiPrvSE.exe
taskhost.exe
dwm.exe
explorer.exe
WkSvMgr.exe
WanDouJiaHelper.exe
360Tray.exe
concentr.exe
WPService.exe
wfcrun32.exe
TSVNCache.exe
SearchIndexer.exe
svchost.exe
wmpnetwk.exe
svchost.exe
svchost.exe
QQ.exe
TXPlatform.exe
Maxthon.exe
Maxthon.exe
Maxthon.exe
svchost.exe
myeclipse.exe
LiveUpdate360.exe
ctfmon.exe
Maxthon.exe
QQExternal.exe
audiodg.exe
WmiPrvSE.exe
cmd.exe
conhost.exe
SearchProtocolHost.exe
SearchFilterHost.exe
taskhost.exe
java.exe
关闭notepad.exe成功

能够关闭成功。
Process_.java的代码为:

public class Process_ {
static
{
System.loadLibrary( "Process_" );
}
public native static int TerminateProcess(String name);

public static void main(String[] args){
System.out.println("======");
System.out.println( "start ");
Process_ pro = new Process_();
int n = Process_.TerminateProcess("notepad.exe");
if (n==0)
{
System.out.println( "关闭notepad.exe成功");
}
else
System.out.println( "关闭notepad.exe失败");
}
}


可把这段代码拿到MyEclipse下面,点右键Run as --》 Java Application的时候报错。
Exception in thread "main" java.lang.UnsatisfiedLinkError:
com.up.load.Process_.TerminateProcess(Ljava/lang/String;)I

我把Process_.dll放到librarypath下面去了,现在好像是找不到TerminateProcess这个方法,而不是找不到Process_这个类。

望高手解答,谢谢。
...全文
416 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
niwenbin416 2011-10-17
  • 打赏
  • 举报
回复
放到System32目录下

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧