2014-10-03 62 views
3

我在Talend lib目录中有jar和dll。路径和类路径已设置。我还下载并安装了由SAP提供的VC++ 2005重新分发sp 1修补程序和缺少的dll。我曾尝试在Windows 2003机器和XP机器上运行此ETL作业,结果相同。有人可以帮我从这里出去吗。Talend:java.lang.UnsatisfiedLinkError:java.library.path中没有sapjco3

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] 
+0

你可以发布你的工作截图吗? – ydaetskcoR 2014-10-03 19:09:48

回答

4

首先确保您有\ LIB \ Java中的.jar文件\ 如果您使用的是Windows,你应该把DLL和sapjco3.jar到C:\ WINDOWS \ SYSTEM32 \ 如果你在linux上,你需要把.so文件放到你的路径中。

  • 副本sapjco3.jar到了Talend的lib/java文件夹,并确保sapjco3.dll是在%PATH%(快速和肮脏的地方它在WINDOWS \ SYSTEM32 \)通过双击sapjco3
  • 测试的.jar 应该显示有关罐子 的位置和DLL

使用Talend OS和sapjco3常见问题的位置信息: 您需要32位版本,如果你正在运行一个32位的JAVA。 64位版本,如果你有64位Java。

+0

感谢您的回答。我将jar和dll添加到Talend lib \ java文件夹中。我就像你说的那样双击jar,并且在Jco Library变量的路径中找到“not found”。但该DLL在同一个文件夹中。我将Talend lib \ java文件夹的路径添加到路径env。变量但它没有做任何改变。我们如何设置Jco Library的路径 – user1082748 2014-10-06 00:16:06

+0

好的。我在另一台XP电脑上安装了Talend,并双击jar sapjco3.jar文件。我在lib \ java文件夹中添加了dll和jar文件。所有的变量都设置好了,我没有收到任何错误。但是,当我运行我的工作时,我仍然从Talend中获得相同的错误消息。 – user1082748 2014-10-06 01:00:05

+0

好的,我设置了路径并将lib \ java添加到Talend路径变量后重新启动到了计算机。 – user1082748 2014-10-06 01:09:08