我在Windows 10(64位)上运行Java 1.8.0_065(64位)。我已经下载了最新的cmake版本(3.4.0-rc2)for windows和最新的VTK源(6.3.0)。我通过cmake生成了一个VS2015解决方案,并使用本教程成功设置了所有内容(貌似!!):
https://www.particleincell.com/2011/vtk-java-visualization/
当我尝试运行本教程提供的DemoJavaVTK.java时,我在IntelliJ中遇到了链接器错误。 (14.1.5)好像每个必须加载的VTK库都存在同样的错误:
java.lang.UnsatisfiedLinkError:C:\ Program Files \ VTK \ bin \ ANY_VTK_DLL.dll:无法找到依赖库 java.lang.ClassLoader $ NativeLibrary.load(Native Method)at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1938)at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1854)at java.lang.Runtime.loadLibrary0(Runtime.java:870)at java.lang.System.loadLibrary(System.java:1122)at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:223)at at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:158) at sample.DemoJavaVTK。(DemoJavaVTK.java:54)at java.lang.Class.forName0(Native Method)at java.lang.Class.forName(Class.java:264)at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
请注意,ANY_VTK_DLL只是一个占位符。具体示例如下:vtkViewsContext2DJava.dll或vtkRenderingVolumeOpenGLJava.dll。
路径应该是正确的。所有"版本"是64位。我编译VTK为64位。我正在使用64位java运行64位操作系统。
最奇怪的是:使用eclipse一切正常,我可以毫无问题地运行VTK-demo。我也在我的大学使用VTK课程,我和一位拥有相同java和intellij版本的同事一起开展我的项目。他还使用相同的教程来设置VTK / Java。这个例子也适用于IntelliJ。我和他的系统之间的唯一区别是,他使用的是Windows 8.1,我使用的是Windows 10。
我真的不知道从哪里继续。什么是IntelliJs问题?
答案 0 :(得分:1)
<强>更新强>
UnsatisfiedLinkError 表示Java虚拟机(JVM)无法找到声明为 native 的方法的相应本机语言定义。具体来说,为了找到所需的本机库,JVM同时查找PATH环境变量和java.library.path系统属性。(来自this article)
我曾经遇到过这种问题主要是因为两个原因:
为了确定您要链接的图书馆使用Dependency Walker。使用此工具可以告诉您链接到哪些本机库,从而使您了解错误。
下载该工具,然后打开 C:\ Program Files \ VTK \ bin \ ANY_VTK_DLL.dll 以查看它链接到哪个库以及它们在您的计算机中的位置。然后确保IntelliJ可以找到这些路径。
以下是关于如何使用此工具的好tuto:http://www-archive.mozilla.org/quality/help/dependency-walker.html
如果它们是正确的,请验证IntelliJ Idea用于启动应用程序的类路径,以检查本机库是否存在。
答案 1 :(得分:1)
答案 2 :(得分:0)
我可以使用 System.setProperty(“ vtk.lib.dir”,YourBuildVTKLibPath);
答案 3 :(得分:-1)
我是使用VTK的新手,花了一些时间修复此问题,我正在使用eclipse,
我在PATH环境变量中添加了dll文件夹和lib文件夹