Maven:“由以下原因引起:java.lang.NoClassDefFoundError:com/omnesys/omne/om/OMN" [英] Maven : "Caused by: java.lang.NoClassDefFoundError: com/omnesys/omne/om/OMN"
问题描述
我想将第3方外部jar添加到我的Maven存储库中.我的项目在Spring Boot中.
错误:
线程主"中的 `Exception java.lang.reflect.InvocationTargetException在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处在sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在java.lang.reflect.Method.invoke(未知来源)在org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)在org.springframework.boot.loader.Launcher.launch(Launcher.java:87)在org.springframework.boot.loader.Launcher.launch(Launcher.java:51)在org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)引起原因:java.lang.NoClassDefFoundError:com/omnesys/omne/om/OMNM在java.lang.Class.getDeclaredConstructors0(本地方法)在java.lang.Class.privateGetDeclaredConstructors(未知来源)在java.lang.Class.getConstructor0(未知来源)在java.lang.Class.newInstance(未知来源)在com.omnesys.nestq.classes.ClassNestQ12上.< init>(ClassNestQ12.java:28)位于com.omnesys.nestq.classes.NestControl.< init>(NestControl.java:39)在orion.ibclient.OmnesysJAPI.< init>(OmnesysJAPI.java:69)在orion.TradingProgram.connectToNest(TradingProgram.java:452)在orion.TradingProgram.main(TradingProgram.java:90)在com.orion.main.OrionController.loadPrperty(OrionController.java:39)在com.orion.main.NestOrionApplication.main(NestOrionApplication.java:21)...另外8个引起原因:java.lang.ClassNotFoundException:com.omnesys.omne.om.OMNM在java.lang.ClassLoader.findClass(未知来源)在java.lang.ClassLoader.loadClass(未知来源)在java.lang.ClassLoader.loadClass(未知来源)...还有19个`
我已经完成了以下操作,但仍然遇到相同的错误.
注意:它适用于其他jar,但不仅适用于此jar.就像DealerSample.jar一样,它可以工作,但不能用于此jar.您可以在下图中看到差异.当我通过构建路径在Simple java项目中添加相同的jar时,它的工作正常,但在Spring Boot项目中却没有.
- 添加外部jar: 解决方案
为什么不尝试 Nexus存储库经理?尽管这种方法可能是漫长而复杂的.但是我认为这是解决您问题的最佳,持久的解决方案.我已经使用了很多次,发现它很有帮助.
I want to add 3rd party external jar into my maven repository. My project is in Spring Boot.
Error :
`Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner .java:48) at org.springframework.boot.loader.Launcher.launch(Launcher.java:87) at org.springframework.boot.loader.Launcher.launch(Launcher.java:51) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52) Caused by: java.lang.NoClassDefFoundError: com/omnesys/omne/om/OMNM at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at com.omnesys.nestq.classes.ClassNestQ12.<init>(ClassNestQ12.java:28) at com.omnesys.nestq.classes.NestControl.<init>(NestControl.java:39) at orion.ibclient.OmnesysJAPI.<init>(OmnesysJAPI.java:69) at orion.TradingProgram.connectToNest(TradingProgram.java:452) at orion.TradingProgram.main(TradingProgram.java:90) at com.orion.main.OrionController.loadPrperty(OrionController.java:39) at com.orion.main.NestOrionApplication.main(NestOrionApplication.java:21 ) ... 8 more Caused by: java.lang.ClassNotFoundException: com.omnesys.omne.om.OMNM at java.lang.ClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 19 more`
I had done following things but still I am getting the same error.
NOTE : It working for other jar but not worked only for this jar. Like for DealerSample.jar its working but not working for this jar. You can see the difference in below picture. When I added the same jar in Simple java project through Build path its working but not in Spring Boot project.
- Add external jar : https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html : Added my jar to .m2 folder and add dependancy into maven.
Maven Command :
mvn install:install-file -Dfile=D:\Vijay\Jars\OmneVerse.15.0.0.0.jar -DgroupId=com.orion -DartifactId=OmneVerse -Dversion=1.0.0 -Dpackaging=jar -DgeneratePom=true
Pom.xml:
<dependencies> <dependency> <groupId>com.orion</groupId> <artifactId>OmneVerse</artifactId> <version>1.0.0</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <includeSystemScope>true</includeSystemScope> </configuration> </plugin> </plugins> </build>
My Project Libs structure :
解决方案Why not try Nexus Repository Manager? Though this approach may be long and complex. But I think it is the best and lasting solution to your problem. I have used it many times and find it very helpful.
这篇关于Maven:“由以下原因引起:java.lang.NoClassDefFoundError:com/omnesys/omne/om/OMN"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!