【问题标题】:Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path获取本机层版本时出错:java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
【发布时间】:2013-04-27 12:22:41
【问题描述】:

在我的 java web 应用程序中,尝试连接 SAP 服务器。生成此错误。我已将 sapjco3.dll 和 sapjco3.jar 放在 WEB-INF/lib/ 中,并在 Java 构建路径中进行了配置。 我还将 servlet 中的路径设置为

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

但也存在错误。

【问题讨论】:

标签: java servlets sap jco


【解决方案1】:

你的方法有几个问题

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

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

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

通常,您应该将 SAP JCo 配置为服务器库,而不是应用程序库。具体过程取决于您的应用服务器。

【讨论】:

    【解决方案2】:

    如果您像我一样使用 Windows,您可以将 sapjco3.dll 放在文件系统中任何您想要的位置(Windows system32sysWOW64 目录,如 sapjco3 文档中所述),然后将其路径添加到您的 Path 系统变量:

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

    如果您在 JBoss 上并且需要将 sapjco3.jar 放入您的项目中,请在此处查看我的答案: https://stackoverflow.com/a/21901220/1592796

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 1970-01-01
      • 2012-12-11
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      相关资源
      最近更新 更多