使用java-jar和tools.jar作为依赖项运行spring引导
我正在尝试运行一个需要tools.jar作为依赖项的springboot应用程序,我运行了“mvn package spring boot:run”,一切正常,但是在使用“mvn package spring boot:repackage”打包并使用java-jar运行之后,生成的boot.jar抛出以下错误使用java-jar和tools.jar作为依赖项运行spring引导,java,spring,maven,jar,spring-boot,Java,Spring,Maven,Jar,Spring Boot,我正在尝试运行一个需要tools.jar作为依赖项的springboot应用程序,我运行了“mvn package spring boot:run”,一切正常,但是在使用“mvn package spring boot:repackage”打包并使用java-jar运行之后,生成的boot.jar抛出以下错误 java -jar "site-0.1.0-spring-boot.jar" Exception in thread "main" java.lang.NoClassDefFoundEr
java -jar "site-0.1.0-spring-boot.jar"
Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/tools/attach/AttachNotSupportedException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getDeclaredMethod(Unknown Source)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.sun.tools.attach.AttachNotSupportedException
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.springframework.boot.loader.LaunchedURLClassLoader.doLoadClass(LaunchedURLClassLoader.java:178)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:142)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 5 more
JAVA_HOME应该指向JDK,这是我的pom
<properties>
<java.version>1.8</java.version>
<activejpa.version>0.2.5-SNAPSHOT</activejpa.version>
<embedded.mongo.version>1.50.3</embedded.mongo.version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>org.activejpa</groupId>
<artifactId>activejpa-core</artifactId>
<version>${activejpa.version}</version>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-java8</artifactId>
<version>5.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.3.7.Final</version>
</dependency>
<!-- MongoDB -->
<!-- dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency> <dependency> <groupId>de.flapdoodle.embed</groupId> <artifactId>de.flapdoodle.embed.mongo</artifactId>
<version>${embedded.mongo.version}</version> </dependency -->
<dependency>
<groupId>org.mongodb.morphia</groupId>
<artifactId>morphia</artifactId>
<!-- See https://github.com/mongodb/morphia/releases for the latest version -->
<version>1.1.1</version>
</dependency>
<!-- THYMELEAF -->
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf</artifactId>
<version>${thymeleaf.version}</version>
</dependency>
<dependency>
<groupId>org.thymeleaf</groupId>
<artifactId>thymeleaf-spring3</artifactId>
<version>${thymeleaf.version}</version>
</dependency>
<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>activejpa-mvn-repo</id>
<url>https://raw.github.com/juanignacionogueira/activejpa/mvn-repo/snapshots/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
<repository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>com.rinlit.RinconLiterarioApplication</mainClass>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<id>spring-releases</id>
<url>https://repo.spring.io/libs-release</url>
</pluginRepository>
</pluginRepositories>
1.8
0.2.5-快照
1.50.3
org.springframework.boot
spring启动程序父级
1.3.3.1发布
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
春季启动邮件
org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
spring引导启动器数据jpa
番石榴
番石榴
19
com.fasterxml.jackson.datatype
jackson-datatype-jsr310
org.activejpa
activejpa核心
${activejpa.version}
postgresql
postgresql
9.1-901-1.jdbc4
org.hibernate
hibernate-java8
5.0.0.1决赛
org.hibernate
休眠ehcache
4.3.7.最终版本
org.mongodb.morphia
吗啡
1.1.1
org.thymeleaf
百里香
${thymeleaf.version}
org.thymeleaf
百里香
${thymeleaf.version}
nz.net.ultraq.thymeleaf
百里香方言
1.2.1
activejpa mvn回购
https://raw.github.com/juanignacionogueira/activejpa/mvn-repo/snapshots/
真的
总是
春假
https://repo.spring.io/libs-release
org.springframework.boot
springbootmaven插件
重新包装
弹簧靴
com.rinlit.RinconLiterarioApplication
maven故障保护插件
集成测试
验证
春假
https://repo.spring.io/libs-release
知道在没有mvn的情况下如何运行它吗?我做了什么坏事?重新打包的jar(例如“fat”jar)中没有添加系统范围依赖项。这就是为什么您的应用程序在开发过程中(使用“本地”类路径)运行良好,而在作为单独的包启动时却无法运行的原因
:您将能够在Maven插件配置中设置
includeSystemScope
,并且将包括任何系统范围的依赖项。请注意,重新打包tools.jar
可能是一种气味,请参见“需要将tools.jar作为依赖项”。我在您的pom中没有看到这种依赖关系。不,我在另一次尝试中添加了maven定义,但无论如何都不起作用,我已经删除了它。我认为,如果您使用JDK而不是JRE运行它,它应该在那里,并且它在spring boot run中工作正常,因此在这种情况下,依赖项在那里,但在包不存在之后……系统范围的依赖项不会添加到fat jar中。你不想在SpringBoot应用程序中重新打包“tools.jar”,这感觉真的不对。有趣的是!你的意思是我不应该需要那种依赖?我正在使用activejpa(ActiveRecord模式的实现),它将一个代理附加到vm,直到我看到的部分通过该jar完成,这就是我需要它的原因…请参阅。同时,我已经实现了在引导中包含系统范围的依赖项。这将在1.4.0.RC1(下一版本)中提供。