java.lang.UnsatisfiedLinkError: no jacob in java.library.path
我用到的是java2word.jar包,解析word的com元素,将其改为jacob.jar后WordDoc类中word.release();报错,所有据网上说的如下方法...
我用到的是java2word.jar包,解析word的com元素,将其改为jacob.jar后WordDoc类中word.release();报错,所有据网上说的如下方法 不可行:“下载jacob.rar,解压出jacob.dll和jacob.jar然后:1) 把jacob.dll在 C:\Program Files\Java\jdk1.5.0_08\bin、C:\Program Files\Java\jdk1.5.0_08\jre\bin、C:\WINDOWS\system32 目录下各.放一份2) 把jacob.jar放入 项目的lib包下,并且在“java构建路径”中也要加载此jar包。.3) 运行项目即可编译通过.”请大神帮忙
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.jacob.com.ComThread.<clinit>(ComThread.java:128)
at com.haitaiinc.gcp.reviewworksheet.WordDoc.<init>(WordDoc.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
java.lang.Exception: 初始化类库出错,请检查是否使用安装程序在本机器进行了安装。
如果简单地从其它机器拷贝安装目录到本机器可能导致该错误。 展开
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at com.jacob.com.ComThread.<clinit>(ComThread.java:128)
at com.haitaiinc.gcp.reviewworksheet.WordDoc.<init>(WordDoc.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
java.lang.Exception: 初始化类库出错,请检查是否使用安装程序在本机器进行了安装。
如果简单地从其它机器拷贝安装目录到本机器可能导致该错误。 展开
展开全部
DLL 默认是读取 Windows 环境变量%PATH%,Linux 也有一个 LD 开头的变量(忘记叫什么名字)。而我们随时可以通过 -Djava.library.path=定制我们的 load library 路径搜索列表。
把你的 dll 复制到到处都是不是一个推荐的方法,这会导致当我们有多个版本时出错或你换了版本时不知道具体有多少个地方未忘记替换,正确的方法是让 -Djava.library.path 中包括你的目录,这便于集中管理。另外作为 native 程序(VC,VB之类的非虚拟机程序)它们默认会把当前目录作为搜索目录,记住Java 不会默认把当前目录当作搜索目录,如果你偶然发现是这样的那是因为 环境变量 CLASSPATH 或 PATH 中包括了一个 "." 在里面,而这个”." 是安装 JRE 时自动添加或你手工添加的,有些程序的 bat 批处理文件中使用当前目录,但当我们在 bat 中通过 cd 命令改变了当前目录时我们再用”重启“的功能再启动命令行时我们就应该小心留言到这个当前目录已经变化了。
另外 Java Build Path (Java 构建路径)下添加 jar 包这个过程本身只是为”Build" 构建准备的,当我们在“Run" 运行的时候是不相关的(只是 Eclipse 会自动把 Java Build Path 转换在运行一个 main class 时的 classpath,当我们手工运行 main class 命令行时我们还是得自己添加 classpath,因此始终明白这个 Java Build Path 并不一定能解决 Run 的问题)。
把你的 dll 复制到到处都是不是一个推荐的方法,这会导致当我们有多个版本时出错或你换了版本时不知道具体有多少个地方未忘记替换,正确的方法是让 -Djava.library.path 中包括你的目录,这便于集中管理。另外作为 native 程序(VC,VB之类的非虚拟机程序)它们默认会把当前目录作为搜索目录,记住Java 不会默认把当前目录当作搜索目录,如果你偶然发现是这样的那是因为 环境变量 CLASSPATH 或 PATH 中包括了一个 "." 在里面,而这个”." 是安装 JRE 时自动添加或你手工添加的,有些程序的 bat 批处理文件中使用当前目录,但当我们在 bat 中通过 cd 命令改变了当前目录时我们再用”重启“的功能再启动命令行时我们就应该小心留言到这个当前目录已经变化了。
另外 Java Build Path (Java 构建路径)下添加 jar 包这个过程本身只是为”Build" 构建准备的,当我们在“Run" 运行的时候是不相关的(只是 Eclipse 会自动把 Java Build Path 转换在运行一个 main class 时的 classpath,当我们手工运行 main class 命令行时我们还是得自己添加 classpath,因此始终明白这个 Java Build Path 并不一定能解决 Run 的问题)。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询