使用java调用DLL文件获取错误为java.lang.ExceptionInInitializeError
我有一个dll文件,我正试图使用我的java程序调用它 我的java程序和dll文件都在同一文件夹中使用java调用DLL文件获取错误为java.lang.ExceptionInInitializeError,java,dll,Java,Dll,我有一个dll文件,我正试图使用我的java程序调用它 我的java程序和dll文件都在同一文件夹中C://JNI\u项目 我的dll名称是JNITest.dll 我的java程序如下所示: public class JNITest { static{ System.loadLibrary("JNITest"); } public static void main(String[] args) { JNITest test=new JNITest
C://JNI\u项目
我的dll名称是JNITest.dll
我的java程序如下所示:
public class JNITest {
static{
System.loadLibrary("JNITest");
}
public static void main(String[] args) {
JNITest test=new JNITest();
//test.greet();
}
}
C:\JNI_project>javac JNITest.java
C:\JNI_project>java JNITest
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: key can't be empty
at java.lang.System.checkKey(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at JNITest.<clinit>(JNITest.java:5)
我在cmd
中执行了以下程序:
public class JNITest {
static{
System.loadLibrary("JNITest");
}
public static void main(String[] args) {
JNITest test=new JNITest();
//test.greet();
}
}
C:\JNI_project>javac JNITest.java
C:\JNI_project>java JNITest
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalArgumentException: key can't be empty
at java.lang.System.checkKey(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at JNITest.<clinit>(JNITest.java:5)
C:\JNI\u project>javacjnitest.java
C:\JNI\U项目>java JNITest
线程“main”java.lang.ExceptionInInitializeError中出现异常
原因:java.lang.IllegalArgumentException:密钥不能为空
位于java.lang.System.checkKey(未知源)
位于java.lang.System.getProperty(未知源)
JNITest.(JNITest.java:5)
我在运行时遇到错误。请指导我解决这个问题。
System.getProperty(“”
是您的问题,异常消息也告诉您这一点。您需要向该方法调用传递一个非空值。@JonK您能建议我应该传递什么吗?我引用了这个链接,我不知道你为什么要把一个属性设置为另一个属性的值。您甚至需要首先调用getProperty
吗?我已经像这样更改了程序,但是在运行时公共类JNITest{static{System.loadLibrary(“JNITest”);}public static void main(String[]args)仍然出现错误{JNITest test=new JNITest();//test.greet();}