非web應用
非web項目,很少有帖子講解對此的打包和運行。(web項目就很容易通過添加
war
插件和gradle build
打包)
運行的方法嘗試出了幾種。
idead中直接運行
使用idea直接運行main
類即可。
使用插件
使用gradle,需要在build.gradle
文件中,添加插件application
,並設置好主函數的名稱mainClassName
。最后在項目根目錄下(build.gradle
同級目錄)執行命令:
gradle run
打包成多個jar文件
依然需要上一步的application
插件和mainClassName
配置,然后執行命令下載依賴庫並發布:
gradle install
打開build/install/項目名/
目錄可以看到兩個文件夾bin/
和lib/
,lib目錄下是打包好的項目jar包和其它添加的依賴包,bin目錄下是配置好的sh腳本,方便直接運行。
這個sh腳本主要就是獲取了lib的路徑,將里面的所有jar包的路徑都記錄下,然后執行命令
java -classpath 絕對路徑/lib/xxx.jar:絕對路徑/lib/yyy.jar com.yww.Main
運行。
打包成單個jar文件
上一個方法打包出來,自己的項目打包的jar和依賴的jar都零散的堆在文件夾中,運行時,還需要指定所有的jar包路徑-classpath
,十分麻煩。找到在build.gradle
配置打包方式,且不需要插件application
和mainClassName
配置。
jar {
from {
configurations.runtime.collect{zipTree(it)}
}
manifest {
attributes 'Main-Class': 'com.yww.Main'
}
}
找到目錄build/lib/
執行命令運行:
java -jar demo.jar
發現idea中可直接打包成單個文件,輸出到
out/
目錄下,但運行的方式不太一樣,找不到主類,需要執行命令java -classpath demo.jar com.yww.Main
運行。