2014-01-28 58 views
1

我們有一個spring boot(0.5.0.M7)生成的jar文件。當我們在Windows 7上運行「mvn clean package」,然後運行(「java -jar target/my-app-camel-0.1.0.jar」)(64位與Oracle 64位Java SE JVM,1.7.0_51-b13 )它如預期所有的工作:在CentOS在Centos 6.4上運行Spring Boot jar時出現java.io.IOException異常/打開JDK 1.7.0

. ____   _   __ _ _ 
/\\/___'_ __ _ _(_)_ __ __ _ \ \ \ \ 
(()\___ | '_ | '_| | '_ \/ _` | \ \ \ \ 
\\/ ___)| |_)| | | | | || (_| | )))) 
    ' |____| .__|_| |_|_| |_\__, |//// 
=========|_|==============|___/=/_/_/_/ 
:: Spring Boot ::    (v0.5.0.M7) 

10:47:25.324 [main] INFO com.myco.myapp.Application - Starting Application on MYLAPTOP with PID 12260 (D:\Users\me\My Projects\Work\myco\myapp\src\myapp\my-app-camel\target\my-app-camel-0.1.0-SNAPSHOT.jar started by ME) 
10:47:25.953 [main] INFO o.s.b.f.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [META-INF/spring/camel-server.xml] 
10:47:27.698 [main] INFO o.s.b.c.e.AnnotationConfigEmbeddedWebApplicationContext - Refreshing org.springframework.boot[email protected]1e6d136c: startup date [Tue Jan 28 10:47:27 GMT 2014]; root of context hierarchy 
... 

然而,當我們 「MVN清潔包」,然後運行( 「Java的罐子目標/我-APP-駱駝0.1.0.jar」)釋放6.4(最終)(64位操作系統,與OpenJDK的64位Java SE JVM,1.7.0_51-B02)失敗:

java.io.IOException: Unable to find ZIP central directory records after reading 206 bytes 
    at org.springframework.boot.loader.jar.CentralDirectoryEndRecord.<init>(CentralDirectoryEndRecord.java:64) 
    at org.springframework.boot.loader.jar.JarFile.loadJarEntries(JarFile.java:124) 
    at org.springframework.boot.loader.jar.JarFile.<init>(JarFile.java:120) 
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFileFromFileEntry(JarFile.java:333) 
    at org.springframework.boot.loader.jar.JarFile.getNestedJarFile(JarFile.java:305) 
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchive(JarFileArchive.java:87) 
    at org.springframework.boot.loader.archive.JarFileArchive.getNestedArchives(JarFileArchive.java:74) 
    at org.springframework.boot.loader.ExecutableArchiveLauncher.getClassPathArchives(ExecutableArchiveLauncher.java:78) 
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:52) 
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:44) 

注意:當我在 「解壓我-APP-camel.jar」它提取的Centos命令行很好。

+0

本地maven緩存中存在錯誤的JAR文件(它發生)?您是否嘗試使用「mvn spring-boot:run」運行應用程序?如果你有一個糟糕的JAR文件,它可能會出現這種情況。 –

+0

也可以試試1.0.0.RC1或快照嗎?我認爲我們遇到並解決了一些jar提取問題。 –

+0

謝謝@DaveSyer我現在就試試。 –

回答

3

看起來這是本地maven緩存中的一個糟糕的JAR文件(它發生了)。值得嘗試的一件事實際上是使用「mvn spring-boot:run」運行應用程序。如果你有一個糟糕的JAR文件,它可能會出現這種情況。另一個是刪除本地緩存文件(例如從「〜/ .m2/repository」)並重建應用程序。

相關問題