获取本机层的版本时出错:java.lang.UnsatisfiedLinkError:java.library.path中没有sapjco3

时间:2013-05-03 06:42:46

标签: java servlets sap jco

在我的java Web应用程序中,尝试连接SAP Server。生成此错误。我已将 sapjco3.dll和sapjco3.jar 放在 WEB-INF / lib / 中,并在Java Build Path中配置。 我还将servlet中的Path设置为

System.setProperty("java.library.path", "/WEB-INF/lib");

但也存在错误。

2 个答案:

答案 0 :(得分:1)

您的方法有几个问题

  1. 建议不要以编程方式更改java.library.path,因为该属性是在JVM启动时缓存的。有关详细信息,请参阅Setting "java.library.path" programmatically

  2. 您正在覆盖java.library.path,而不是在最后添加目录。您的应用程序服务器很可能需要一些自己的本机库。

  3. /WEB-INF/lib是您的JVM无法找到的相对路径,因为JVM根目录与您的应用程序根目录不同(更不用说您是否正在部署WAR文件)

  4. 通常,您应将SAP JCo配置为服务器库,而不是应用程序库。确切的过程取决于您的应用程序服务器。

答案 1 :(得分:0)

如果您像我一样在Windows上,可以将 sapjco3.dll 放在文件系统中的任何位置(Windows system32 sysWOW64 <除外) / strong>目录,如sapjco3文档中所述),然后将其路径添加到 Path 系统变量中:

sapjco3.dll in Path system variable

在Linux上,您将 libsapjco3.so 文件的路径添加到环境变量 LD_LIBRARY_PATH

如果您使用JBoss并且需要将sapjco3.jar放入项目中,请参阅此处的答案: https://stackoverflow.com/a/21901220/1592796