首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Talend中导入外部jar

在Talend中导入外部jar
EN

Stack Overflow用户
提问于 2020-12-16 10:07:55
回答 2查看 2.9K关注 0票数 1

有人能帮我解决这个问题吗。我已经成功地安装了Talend工作室(Talend Data 7.3.1)。但是当我尝试使用tDBInput组件连接到Azure数据库时,它显示了一个错误,jar“MSSQLjdbc.jar”丢失了。因为下载按钮是禁用的。

请参见下面显示“下载”按钮已禁用的快照。

显示组件中下载按钮的屏幕截图已被禁用

我手动下载了jar“MSSQLJDBC-8.4.0.jre11”,并将其指向组件。当我执行Talend作业时,它显示了以下错误

代码语言:javascript
运行
复制
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“MSSQLJDBC-8.2.1jre11”。它起作用了,我能够查询Azure SQL数据库。

但是使用tlibraryload并不是最好的实践,请有人告诉我如何将这个版本的jar“MSSQLJDBC-8.2.1jre11”直接指向组件。

我尝试通过windows->show_view->Modules加载这个jre。但是它显示“这个模块已经安装了maven URI”。

请帮助我,并建议如何将此版本的jar“MSSQLJDBC-8.2.1jre11”直接指向组件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-12-17 04:55:21

我贴出了这个问题的答案,所以这会对将来的人有所帮助。我所犯的错误是,首先我应该下载“MSSQLJDBC-8.2.1jre11”jar并将其指向组件,而不是下载“MSSQLJDBC-9.1jre”并指向组件。这是个可怕的错误。

确保您正在下载与jdk兼容的正确版本的jar。对我来说,jdk版本是11,所以我应该先下载“MSSQLJDBC-8.2.1jre11”jar。

由于我已经下载了不同版本的jar,并且首先指向组件,所以它不接受我现在所指的jar的正确版本“MSSQLJDBC-8.2.1jre11”。我们应该从下面的文件夹中删除旧的jar,我们应该尝试导入正确的jar版本。看起来不错。对我来说效果很好。

我们应该从系统中的以下文件夹中删除旧jar

Windows(c)->Talend_Studio->Configuration->.m2->repository->org->Talend->Libraries

在这个库文件夹下,对于我的情况,我应该找到文件夹MySQL目录并删除它。

然后,我尝试通过windows->show_view->Modules导入jar,它成功了。:-)

希望这对某人有用。

票数 2
EN

Stack Overflow用户

发布于 2020-12-17 11:23:02

确保,

  1. java要求和与Talend的版本兼容性,并检查cmd中的java -version版本
  2. 由于Maven存储库所需的支持库(Archive)是在构建和清理项目时下载的
  3. java.lang.UnsupportedClassVersionError: com/microsoft/sqlserver/jdbc/SQLServerDriver异常版本错配的MSSQLjdbc.jar
  4. 选中已安装的maven repo : Windows > Preferences > Maven > User Settings > Local,如果maven安装在您的系统\maven\apache 3.0.3\conf\seting.xml Dir路径中,请在此处下载所有库
  5. 从.m2 ->存储库->org->Talend->->mssql中删除/删除jar (6.0.0)
  6. 清理工作区,确保删除存档文件的旧版本。
  7. 如果在系统中配置了maven URI,则构建工作区,它将自动下载支持lib或
  8. 手动导入存档文件windows->show_view->Modules
  9. 重启演播室

希望这是有用的。好了!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65321134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档