Talend:java.lang.UnsatisfiedLinkError:java.library.path 中没有 sapjco3 [英] Talend: java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path

查看:84
本文介绍了Talend:java.lang.UnsatisfiedLinkError:java.library.path 中没有 sapjco3的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在 Talend lib 目录中有 jar 和 dll.路径和类路径已设置.我还下载并安装了 VC++ 2005 redistribution sp 1 补丁和 SAP 提供的缺少的 dll.我曾尝试在 Windows 2003 机器和 XP 机器上运行此 ETL 作业,结果相同.任何人都可以在这里帮助我.

I have the jar and dll in the Talend lib directory. The path and classpath are set. I also have downloaded and installed the VC++ 2005 redistribution sp 1 patch and the missing dlls that are supplied by SAP. I have tried to run this ETL job on a windows 2003 machine and on a XP machine with the same result. Can anyone help me out here.

Starting job Chargebacks at 13:57 03/10/2014.

[statistics] connecting to socket on port 3350
[statistics] connected
java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
    at java.lang.ClassLoader.loadLibrary(Unknown Source)
    at java.lang.Runtime.loadLibrary0(Unknown Source)
    at java.lang.System.loadLibrary(Unknown Source)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.loadLibrary(DefaultJCoRuntime.java:441)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.registerNativeMethods(DefaultJCoRuntime.java:307)
    at com.sap.conn.jco.rt.JCoRuntime.registerNatives(JCoRuntime.java:969)
    at com.sap.conn.rfc.driver.CpicDriver.<clinit>(CpicDriver.java:955)
    at com.sap.conn.rfc.engine.DefaultRfcRuntime.getVersion(DefaultRfcRuntime.java:43)
    at com.sap.conn.rfc.api.RfcApi.RfcGetVersion(RfcApi.java:261)
    at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:200)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:73)
    at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
    at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:40)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:121)
    at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:216)
    at jdi.chargebacks_0_1.Chargebacks.tSAPConnection_1Process(Chargebacks.java:361)
    at jdi.chargebacks_0_1.Chargebacks.runJobInTOS(Chargebacks.java:3718)
    at jdi.chargebacks_0_1.Chargebacks.main(Chargebacks.java:3577)
Exception in thread "main" java.lang.ExceptionInInitializerError: Error getting the version of the native layer: java.lang.UnsatisfiedLinkError: no sapjco3 in java.library.path
    at com.sap.conn.jco.rt.MiddlewareJavaRfc.<clinit>(MiddlewareJavaRfc.java:212)
    at com.sap.conn.jco.rt.DefaultJCoRuntime.initialize(DefaultJCoRuntime.java:73)
    at com.sap.conn.jco.rt.JCoRuntimeFactory.<clinit>(JCoRuntimeFactory.java:23)
    at com.sap.conn.jco.rt.RuntimeEnvironment.<init>(RuntimeEnvironment.java:40)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at java.lang.Class.newInstance0(Unknown Source)
    at java.lang.Class.newInstance(Unknown Source)
    at com.sap.conn.jco.ext.Environment.getInstance(Environment.java:121)
    at com.sap.conn.jco.ext.Environment.registerDestinationDataProvider(Environment.java:216)
[statistics] disconnected
    at jdi.chargebacks_0_1.Chargebacks.tSAPConnection_1Process(Chargebacks.java:361)
    at jdi.chargebacks_0_1.Chargebacks.runJobInTOS(Chargebacks.java:3718)
    at jdi.chargebacks_0_1.Chargebacks.main(Chargebacks.java:3577)
Job Chargebacks ended at 13:57 03/10/2014. [exit code=1]

推荐答案

首先确保您在 \lib\java\ 中有 .jar 文件如果你在 Windows 上,你应该把 dll 和 sapjco3.jar 放到 PATH如果您使用的是 linux,则需要将 .so 文件放入您的路径中.

First make sure you have the .jar file in \lib\java\ If you're on windows, you should place the dll and the sapjco3.jar to PATH If you're on linux, you need to place the .so files into your path.

  • 将 sapjco3.jar 复制到 talend lib/java 文件夹中,并确保 sapjco3.dll 在 %PATH% 中(快速而脏地将其放在 windows\system32\ 中)
  • 双击 sapjco3.jar 进行测试它应该显示有关罐子位置的信息以及dll的位置

Talend OS 和 sapjco3 的常见问题:如果您运行的是 32 位 JAVA,则需要 32 位版本.如果您有 64 位 java,则为 64 位版本.

Common problems with Talend OS and sapjco3: You need 32bit version if you're running a 32bit JAVA. 64bit version if you have 64bit java.

这篇关于Talend:java.lang.UnsatisfiedLinkError:java.library.path 中没有 sapjco3的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆