JNA:应用程序启动期间的小程序警报

JNA : Applet Alert during startup of application

我努力熟悉JNA。所以我实现了一个简单的 JAVA 应用程序,它加载一个 C DLL 并从该 DLL 执行一个函数。如果我启动该应用程序,我会收到很多小程序警报。在允许所有这些之后,应用程序挂起并且什么都不做。 netbeans IDE 中的输出如下:

Current policy properties:
mmc.sess_pe_act.block_unsigned: false
window.num_max: 5
jscan.sess_applet_act.sig_trusted: pass
jscan.sess_applet_act.block_all: false
file.destructive.state: disabled
window.num_limited: true
jscan.sess_applet_act.unsigned: instrument
mmc.sess_pe_act.action: validate
jscan.session.daemon_protocol: http
file.read.state: disabled
mmc.sess_pe_act.block_invalid: true
mmc.sess_pe_act.block_blacklisted: false
jscan.session.policyname: TU1DIERlZmF1bHQgUG9saWN5
net.bind_enable: false
mmc.sess_cab_act.block_unsigned: false
file.nondestructive.state: disabled
jscan.session.origin_uri: http://repo1.maven.org/maven2/net/java/dev/jna/jna/4.4.0/jna-4.4.0.jar
mmc.sess_cab_act.action: validate
net.connect_other: false
jscan.session.user_ipaddr: 172.20.65.19
jscan.sess_applet_act.sig_invalid: instrument
thread.thread_num_max: 8
mmc.sess_cab_act.block_invalid: true
jscan.sess_applet_act.sig_blacklisted: block
net.connect_src: true
thread.thread_num_limited: true
jscan.sess_applet_act.stub_out_blocked_applet: true
mmc.sess_cab_act.block_blacklisted: true
jscan.session.user_name: MTcyLjIwLjY1LjE5
thread.threadgroup_create: false
file.write.state: disabled
-->> returning Frame NULL
BaseDialog: owner frame is a java.awt.Frame
-->> returning Frame NULL
BaseDialog: owner frame is a java.awt.Frame
-->> returning Frame NULL
BUILD STOPPED (total time: 14 seconds)

我还尝试了一个来自互联网的示例来检查这是否与我尝试加载的 DLL 相关,但是这个示例也失败了。

示例如下所示

import com.sun.jna.Library;
import com.sun.jna.Native;


public interface testDll extends Library {

    testDll INSTANCE = (testDll) Native.loadLibrary("msvcrt", testDll.class);

    void printf(String format, Object... args);    
}

这里是调用这个testDll的main函数

public static void main(String[] args) {

    testDll dll = testDll.INSTANCE;
    dll.printf("hallo");
}

可能是这个问题与JAVA安全设置有关,但我不知道如何解决这个问题。也许有人有类似的问题,可以帮助我解决这个问题。 谢谢, 嘘

我找到了它不起作用的原因。 在我们公司,他们使用 Trend Micro 的防病毒软件。如果您下载 jar 文件并向其中添加一些额外的包 'trend',TM 似乎会修改 jar 文件。我不知道TM为什么要这样做,但它引起了我所有的小程序警报。 只是删除 'trend' 包并没有解决问题。我从 GitHub 存储库中获取了 JNA 源代码,目前使用的是来自此构建的 jar。现在 JNA 可以正常工作了。