4
我已經在NetBeans/Maven的開發的應用程序,可以通過命令行以啓動:Exec的Maven插件,以命令行
mvn exec:exec "-Dexec.executable=C:\\Java\\jdk1.6.0_33\\bin\\java.exe" "-Dexec.args=-Dlog4j.properties=... -classpath %classpath com.xxx.MyLauncher" -Dexec.classpathScope=runtime -Dexec.workingdir=
現在我需要運行通過標準的Java命令行方式的應用,像:
java -Dlog4j.properties=... -jar myapp-1.2-SNAPSHOT.jar
不幸的是這並沒有以相同的方式工作,因爲我得到以下異常:
opencard.core.util.OpenCardPropertyLoadingException: property file not found
問題:
- 啓動應用程序與Exec-Maven插件和命令行上的標準Java執行之間有什麼區別?
- 有沒有簡單的方法將Maven執行腳本轉換爲標準命令行?
- 如何成功運行應用程序?
你的jar包含了所有的依賴關係嗎?在這裏看到更多的信息:[鏈接](http://stackoverflow.com/questions/5107988/how-to-tell-maven-to-build-an-executable-jar) –
顯然在命令行上,你執行該jar爲它是可執行的,而在pom.xml中,您將它指定給classpath和mainclass;你是否檢查過你的清單條目是否與Maven構建的已執行的命令行匹配? –
看來類路徑是由這個錯誤引起的問題[http://jira.codehaus.org/browse/MASSEMBLY-334]。用maven-shade-plugin替換maven-assembly-plugin解決了這個問題。感謝您的支持! – mistercaste