vtk-8.01的java版本环境配置
0、当前环境:
win10-64bit 电脑系统
java1.7-64bit
1、准备工具:
编译java版本的vtk后的文件:(64位版本)
1》dlls文件
2》vtk.jar文件
其中dlls文件夹下都是编译好的dll文件,如下图(总共有212个项目):
需要安装Visual Studio环境,我安装的是Visual Studio2015-64bit
编译好的文件获取链接:https://github.com/JPhei/vtk_java
2、环境配置搭建:
0》、确人当前的java版本:win+R进入命令行,输入:java -version 。即可查看当前运行环境的java版本;
1》、dlls文件夹下的212个.dll文件,拷贝到java 1.7的安装目录下的bin目录下(即:与java.exe同一目录);
2》、dlls文件夹下的212个.dll文件,再拷贝一份到C:\Windows\System32 的目录下;
3》、eclipse中创建测试项目,测试demo:
3-1、项目中build path -》添加上面编译好的vtk.jar包到该项目中:
注 意,需要将vtk.jar文件加入eclipse的build path,同时把上面拷贝出来的dll文件拷贝到java 安装目录下的bin目录下,即和java.exe文件在同一目录。
3-2、接下来就是执行程序测试结果了,如果不出问题,那么可以得到以下效果:
package vtktestdemo;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import vtk.vtkActor;
import vtk.vtkConeSource;
import vtk.vtkNativeLibrary;
import vtk.vtkPanel;
import vtk.vtkPolyDataMapper;
/**
* An application that displays a 3D cone. A button allows you to close the
* application.
*/
public class SimpleVTK extends JPanel implements ActionListener {
private static final long serialVersionUID = 1L;
private vtkPanel renWin;
private JButton exitButton;
// -----------------------------------------------------------------
// Load VTK library and print which library was not properly loaded
static {
if (!vtkNativeLibrary.LoadAllNativeLibraries()) {
for (vtkNativeLibrary lib : vtkNativeLibrary.values()) {
if (!lib.IsLoaded()) {
System.out.println(lib.GetLibraryName() + " not loaded");
}
}
}
vtkNativeLibrary.DisableOutputWindow(null);
}
// -----------------------------------------------------------------
public SimpleVTK() {
super(new BorderLayout());
// build VTK Pipeline
vtkConeSource cone = new vtkConeSource();
cone.SetResolution(8);
vtkPolyDataMapper coneMapper = new vtkPolyDataMapper();
coneMapper.SetInputConnection(cone.GetOutputPort());
vtkActor coneActor = new vtkActor();
coneActor.SetMapper(coneMapper);
renWin = new vtkPanel();
renWin.GetRenderer().AddActor(coneActor);
// Add Java UI components
exitButton = new JButton("Exit");
exitButton.addActionListener(this);
add(renWin, BorderLayout.CENTER);
add(exitButton, BorderLayout.SOUTH);
}
/** An ActionListener that listens to the button. */
public void actionPerformed(ActionEvent e) {
if (e.getSource().equals(exitButton)) {
System.exit(0);
}
}
public static void main(String s[]) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame("SimpleVTK");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane()
.add(new SimpleVTK(), BorderLayout.CENTER);
frame.setSize(400, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
3、错误总结:
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkChartsCoreJava.dll: Can't find dependent libraries
。。。
vtkAcceleratorsVTKmJava not loaded
。。。
如下图所示:
解决方案:
1》、确认系统当前运行的java版本:控制面板-》java-》java
这里java运行时环境变量选择为java1.7
2》、确认java的系统环境变量配置也是java1.7;
3》、win+R ,输入:java -version 。查看java版本,保证也是java1.7;
4》、在C:\Windows\System32 的目录下、java1.7安装目录下的bin目录下。分别拷贝一份*.dll文件(总共212个.dll文件);
错误详情请看下面:
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkChartsCoreJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonColorJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonComputationalGeometryJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonCoreJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonDataModelJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonExecutionModelJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonMathJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonMiscJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonSystemJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkCommonTransformsJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at vtk.vtkNativeLibrary.LoadLibrary(vtkNativeLibrary.java:235)
at vtk.vtkNativeLibrary.LoadAllNativeLibraries(vtkNativeLibrary.java:170)
at vtktestdemo.SimpleVTK.(SimpleVTK.java:30)
java.lang.UnsatisfiedLinkError: C:\Program Files\Java\jdk1.7.0_75\bin\vtkDomainsChemistryJava.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoade