java 访问dll_在java中访问dll方法

我正在尝试访问用c#编写的

java中的dll方法.从以下代码我试图构建成功生成的DLL.

using System;

using Microsoft.Win32;

namespace CyberoamWinHelper

{

public class RegistryAccess

{

public static String getValue(String key)

{

RegistryKey rk = Registry.CurrentUser;

RegistryKey rk1=rk.OpenSubKey("Software\\Test", RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.FullControl);

rk1.SetValue(key, "val1");

return rk1.GetValue(key).ToString();

}

public static void createSubkey(String name)

{

RegistryKey rk = Registry.CurrentUser;

rk.CreateSubKey("Software\\Test");

}

}

}

在此之后我在我的java程序代码中加载生成的dll,如下所示

public class JNI {

/**

* @param args the command line arguments

*/

public native String getValue(String key);

public static void main(String[] args) {

// TODO code application logic here

try

{

System.loadLibrary("CyberoamWinHelper");

JNI j=new JNI();

System.out.println(j.getValue("abc"));

}

catch(UnsatisfiedLinkError e)

{

System.out.println("Ex" + e.getMessage());

}

}

}

运行此代码后,它给我以下错误.

"Exjni.JNI.getValue(Ljava/lang/String;)Ljava/lang/String;"

好吧,我不明白这个错误是什么,但我想解决它.

我还有一个问题是,因为我调用的方法是一个静态方法,它会以这种方式调用吗?我的意思是调用我们需要的静态方法

“classname.methodname”

所以这里可以调用方法吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值