【问题标题】:how to use .dll files in java code?如何在java代码中使用.dll文件?
【发布时间】:2012-04-18 12:00:13
【问题描述】:

我有一个 .dll 文件,我必须在 java 中使用它。这个 .dll 文件有一个参数化的方法,它应该将类型作为字符串返回。 当我将参数传递给它时,我得到的消息是Native methods do not specify a body

这是代码...

package com.letme.test;

public class Eagleye_parser {

    String n = "E48A7 F7759 65EA7";

    public Eagleye_parser() {}

    static {
        System.loadLibrary("Eagleye_parser");
    }

    public native String eagleye_fmu(n);// here it is giving msg : Native methods do not specify a body 
}

【问题讨论】:

标签: java .net dll java-native-interface


【解决方案1】:

试试看一下 JNA,它为原生代码提供了一个很好的包装层。

https://github.com/twall/jna

【讨论】:

    【解决方案2】:

    在您的项目中简单地添加引用。和顶部的命名空间......然后你可以访问所有的dll方法。 如果您使用的是 Eclispe,则右键单击您的项目->然后单击构建路径->然后单击添加库,然后单击用户库

    这里可以导入dll

    【讨论】:

    • 我试过你说的方法。但我无法导入 .dll,我得到的错误消息是:“所选文件不是有效的用户库文件”
    • 我认为你做错了什么。你是否在 Eclispe 中创建了一个包项目。
    • Okey 你能把 dll 给我,这样我就可以试试到底是什么问题.. 在添加参考中..?
    • 当然@rahul,但请给我您的电子邮件ID,以便我可以同时与您联系,我也可以提供dll。
    • 好吧,这是我的 emailid:rkumar670@gmail.com 或者你可以查看我的 stackoverflow 个人资料。
    【解决方案3】:

    public native String eagleye_fmu(n); 这里的“n”是问题所在,因为它会是任何其他 java 函数声明的问题。

    这应该类似于public native String eagleye_fmu(String); 然后你像调用任何其他函数String result = eagleye_fmu(n); 一样调用本机函数

    这一切都假设您正确实施了 dll

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多