在talend中导入外部jar

lyfkaqu1  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(862)

有人能帮我解决这个问题吗。我已经成功安装了talend studio(talend data fabric 7.3.1)。但当我尝试使用tdbinput组件连接到azuresql数据库时,它显示了一个错误,jar“mssqljdbc.jar”丢失了。因为下载按钮被禁用。
请看下面的快照显示下载按钮被禁用
显示组件中的下载接口被禁用的屏幕截图
我手动下载了jar“mssql-jdbc-8.4.0.jre11”,并将其指向组件。当我执行talend作业时,它显示出以下错误

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver has been compiled by a more recent version of the Java Runtime (class file version 59.0), this version of the Java Runtime only recognizes class file versions up to 55.0
      at java.base/java.lang.ClassLoader.defineClass1(Native Method)
      at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
      at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
      at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
      at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
      at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
      at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
      at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
      at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
      at java.base/java.lang.Class.forName0(Native Method)
      at java.base/java.lang.Class.forName(Class.java:315)
      at psc_co_biopharm.test_job_0_1.Test_job.tDBInput_2Process(Test_job.java:727)
      at psc_co_biopharm.test_job_0_1.Test_job.runJobInTOS(Test_job.java:1458)
      at psc_co_biopharm.test_job_0_1.Test_job.main(Test_job.java:1240)

所以,我尝试了一个工作。使用tlibraryload组件导入jar“mssql-jdbc-8.2.1jre11”。它成功了,我可以查询azuresql数据库。

但是使用tlibraryload并不是最好的做法,有人能告诉我如何将这个版本的jar“mssql-jdbc-8.2.1jre11”直接指向组件吗。
我试着通过windows->show\u view->modules加载这个jre。但它显示“这个模块已经安装了maven uri”

请帮助我并建议如何将这个版本的jar“mssql-jdbc-8.2.1jre11”直接指向组件。

tzdcorbm

tzdcorbm1#

一定要确定,
JavaJDK要求和版本与TalendStudio的兼容性,并在cmd中检查版本java-version
由于它的maven存储库,所以在构建工作区并清理项目时,将下载所需的支持库(archive jar)
java.lang.unsupportedclassversionerror:com/microsoft/sqlserver/jdbc/sqlserverdriver异常mssql-jdbc.jar版本不匹配
检查maven repo installed:windows>preferences>maven>user settings>local repository,如果您的系统中安装了maven\maven\apache-maven-3.0.3\conf\setting.xml dir path所有库下载到这里
从.m2->repository->org->talend->libraries->mssqljdbc(6.0.0)中删除/删除jar
清理工作区,确保删除存档文件的旧版本
如果在系统中配置了maven uri,则构建工作区它将自动下载支持lib或lib的当前版本
手动导入存档文件窗口->显示视图->模块
重新启动工作室
希望这是有用的!

ippsafx7

ippsafx72#

我张贴了这个问题的答案,所以这将有助于在未来的人。我犯的错误是,首先我应该下载“mssql-jdbc-8.2.1jre11”jar并将其指向组件,而不是下载“mssql-jdbc-9.1jre”并指向组件。那是个可怕的错误。
确保下载的jar版本与jdk兼容。对我来说,jdk版本是11,所以我应该首先下载“mssql-jdbc-8.2.1jre11”jar。
因为我已经下载了不同版本的jar,并且首先指向了组件,所以它不接受我现在指向的jar“mssql-jdbc-8.2.1jre11”的正确版本。我们应该从下面的文件夹中删除旧jar,并尝试导入正确版本的jar。会有用的。对我来说效果很好。
我们应该从系统中的以下文件夹中删除旧jar
windows(c)->talend\u studio->配置->.m2->存储库->组织->talend->库
在这个libraries文件夹下,我应该找到mysql目录并删除它。
然后我尝试通过windows->show\u view->modules导入jar
希望这对某人有用。

相关问题