当前位置: 首页 > 知识库问答 >
问题:

IntelliJ中的VTK/Java包装器无法工作,因为链接器错误(找不到相关库)

隗驰
2023-03-14

我在Windows 10(64位)上运行Java 1.8.0_065(64位)。我已经下载了适用于windows的最新cmake版本(3.4.0-rc2)和最新的VTK源代码(6.3.0)。我通过cmake生成了一个VS2015解决方案,并设置了一切(似乎!!)成功使用本教程:

https://www.particleincell.com/2011/vtk-java-visualization/

当我尝试运行DemoJavaVTK时。我在IntelliJ中得到链接器错误。(14.1.5)每个必须加载的VTK库似乎都存在相同的错误:

JAVAlang.unsatifiedLinkError:C:\Program Files\VTK\bin\ANY_VTK_DLL。dll:在java中找不到依赖库。lang.ClassLoader$NativeLibrary。在java上加载(本机方法)。lang.ClassLoader。java上的loadLibrary0(ClassLoader.java:1938)。lang.ClassLoader。java上的loadLibrary(ClassLoader.java:1854)。lang.Runtime。java上的loadLibrary0(Runtime.java:870)。lang.System。vtk的loadLibrary(System.java:1122)。vtkNativeLibrary。vtk的LoadLibrary(vtnativelibrary.java:223)。vtkNativeLibrary。在示例中加载所有NativeLibrary(vtkNativeLibrary.java:158)。DemoJavaVTK。(DemoJavaVTK.java:54)在java。朗,同学们。java上的forName0(本机方法)。朗,同学们。com上的forName(Class.java:264)。intellij。rt.执行。应用阿普曼。main(AppMain.java:122)

注意ANY_VTK_DLL只是一个占位符。具体的例子是: vtkViewsContext2DJava.dll或vtkRenderingVolumeOpenGLJava.dll.

这条路应该是正确的。所有的“版本”都是64位的。我编译了64位的VTK。我用64位java运行64位操作系统

最有趣的是:使用eclipse一切都很好,我可以毫无问题地运行VTK演示。我还在大学里使用VTK学习一门课程,我正在和一位拥有相同java和intellij版本的同事一起做我的项目。他还使用了相同的教程来设置VTK/Java。这个例子在IntelliJ中也适用于他。我能分辨出他和我的系统之间的唯一区别是,他使用的是Windows 8.1,而我使用的是Windows 10。

我真的不知道接下来该怎么办。什么是IntelliJs问题?

共有3个答案

凤凡
2023-03-14

我可以用这个系统运行。setProperty(“vtk.lib.dir”,YourBuildVTKLibPath);

乌鸿宝
2023-03-14

更新:

不满足链接错误表示Java虚拟机(JVM)无法找到声明为本机的方法的适当本机语言定义。具体来说,为了找到所需的本机库,JVM查找PATH环境变量和java.library.path系统属性。(从本文获得)

我曾经有过这样的问题,主要是因为两个原因:

  1. 找不到本地图书馆(即不存在)
  2. 链接的库不同(调试与发布、32位与64位、VC10与VC9等)
  3. 应用程序已加载该库,应用程序将尝试再次加载它
  4. 本机库存在于java中。图书馆路径或应用程序的路径环境库中

为了确定要链接到谁的库,请使用Dependency Walker。使用此工具可以告诉您链接到哪些本机库,从而让您了解问题所在。

下载该工具,然后打开C:\Program Files\VTK\bin\ANY_VTK_DLL. dll,查看它链接到哪个库以及它们在您的机器中的位置。然后确保IntelliJ可以找到这些路径。

下面是一个关于如何使用这个工具的好教程:http://www-archive.mozilla.org/quality/help/dependency-walker.html

如果它们是正确的,请验证IntelliJ Idea用于启动应用程序的类路径,以检查本机库是否存在。

须衡虑
2023-03-14

通过运行配置手动设置JRE,解决了纯随机性问题:

http://puu.sh/l3315/7c1d5e3393.png

为什么这行得通?

 类似资料:
  • 我试着编译这段代码一段时间。具体来说,我正在尝试使用给定的mac编译avx2代码。然而,我总是遇到以下错误。我查了很多资料,但找不到解决办法。如果你能帮我找到解决办法,我将非常高兴。 /usr/bin/ld: 找不到 -lc collect2:错误:ld返回1个退出状态 : *** [测试/test_kyber]错误1 gcc版本 全球合作委员会 (GCC) 4.8.5 20150623(红帽 4

  • 问题内容: 我想知道Java链接器如何工作。具体来说,它将类,接口,包,方法等以何种顺序组合为jvm可执行格式。我在这里找到了一些信息,但是关于链接顺序的信息并不多。 问题答案: 没有Java“链接器”之类的东西。但是,存在类加载器的概念,该类加载器给出了“某处”中的java字节代码数组,可以创建类的内部表示形式,然后可以与etc 一起使用。 在这种情况下,接口只是特殊的类。加载类后,方法和字段将

  • 我试图在Windows10下构建VTK,以便使用Visual Studio2019在Java中使用,基本上是根据本教程、本教程和本教程。部分似乎可以正常工作。我最终得到以下配置: 在带有解决方案配置的Visual Studio中,as admin的生成步骤(build)似乎也起作用: 但是,执行以错误结束: 事实上,在中有很多和文件,但缺少一个。 知道我做错了什么吗?

  • null 无法定位tools.jar。应该在/usr/lib/jvm/java-7-openjdk-amd64/lib/tools.jar中找到它 buildfile:/home/taylor/desktop/java/tcp/build.xml 构建-子项目:

  • 在我的Ubuntu14.04系统中,我安装了Oracle Java8(JDK/JRE8U111),因为IntelliJV16需要JDK1.8或更高版本(我安装了openjdk-7)。 IntelliJ安装成功,但创建新项目时出现错误: