当我的程序运行时,出现以下错误:
Excepiton in theard "AWT -EventQueue -1" java.lang.UnsatisfiedLinkError: program.dll: Not enough storage is avaliable to process this command
[java] at java.lang.ClassLoader$NativeLibrary.load<Native Method>
[java] at java.lang.ClassLoader.loadLibrary0<ClassLoader.java:1751>
[java] at java.lang.ClassLoader.loadLibrary<ClassLoader.java:1647>
[java] at java.lang.Runtime.load0<Runtime.java:769>
[java] at java.lang.System.load<System.java:968>
我该如何解决这个问题...
感谢您的帮助..
答案 0 :(得分:1)
这是来自Windows的消息,表明您的内存耗尽 - 不是您的Java堆,而是机器堆。在尝试运行应用程序时,计算机上的内存如何显示?
答案 1 :(得分:1)
当将本机库加载到JVM中时,它们被映射到JVM地址空间,并且它们为分配内存而进行的任何调用都在该地址空间中进行 - 因此在32位世界中,您最多可以使用4GB
竞争这个4GB是JVM和它的堆(尽管我认为除了JVM特定的地址空间之外,堆大小也有限制。)
无论如何,根据您对@ akf的答案的评论,它看起来有充足的记忆。
我还认为“存储”一词不仅仅指内存。
来自java.lang.UnsatisfiedLinkError
上的Javadoc:
如果是Java虚拟机,则抛出该异常 找不到合适的 本地语言定义方法 宣称是原生的。
请解释/确认:
program.dll
上的java.library.path
,您是否成功调用了其他方法。program.dll
以及你用它做什么。