2016-05-24 12 views
0

tools.jarが依存する必要があるspringbootアプリケーションを実行しようとしていますが、「mvn package spring-boot:run」を実行しました。パッケージング後、「MVNパッケージ春ブート:再パッケージ化」と-jar javaの実行中にそれが必要として依存関係としてtools.jarを使用してjava -jarでスプリングブートを実行

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を指している次のエラーがスローされます、これは私のポンポン

ですboot.jar生成
<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> 

どのようにmvnなしで実行する必要がありますか?私は何が悪いですか?

+1

"tools.jarが依存する必要がある"を参照してください。私はあなたのポンにその依存関係はありません。 –

+0

いいえ、別のtryでmaven定義を追加しましたが、とにかく動作していないので削除しました。 JREのJDK instenで実行するとそこにあるはずですが、春の起動時には正常に動作しますので、依存関係はそこにありますが、パッケージがあとで... – Alejandra

+0

システムスコープの依存関係は追加されません脂肪瓶にあなたはSpring Bootアプリで "tools.jar"を再パッケージしたくない、本当に間違っていると感じます。面白いのは、[私は実際にサポートシステムスコープの依存関係_right now_](https://github.com/spring-projects/spring-boot/issues/2224)に取り組んでいるということです! –

答えて

2

システムスコープの依存関係は、再パッケージ化されたjarファイル(例: 'fat' jarファイル)には追加されません。そのため、あなたのアプリは( "ローカル"クラスパスを使って)開発中に正常に動作し、別のパッケージとして起動されたときには動作しません。

upcoming Spring Boot 1.4.0.RC1 release will support this feature:Mavenプラグインの設定にincludeSystemScopeを設定でき、システムスコープの依存関係がすべて含まれます。 tools.jarを再パッケージすることはおそらく匂いであることに注意してください。this question

関連する問題