Java jar jpackage
综述
jar
Gradle处理依赖jar包类库: jar { //manifest { attributes('Main-Class': application.mainClass) } // 未指定--main-class时设置 //from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } } doLast { // 如果不包裹doLast,jar包内会缺失*.class等。 copy { from configurations.runtimeClasspath into jar.destinationDirectory.asFile.get() // 混淆则另选目录 into "$buildDir/release-files/" } } }
jpackage
jpackage打包用法
C:\Progra~1\Java\jdk-21\bin\jpackage --input C:\Users\aw\Documents\NetBeansProjects\jpkg\app\build\libs\ --main-jar app.jar --main-class com.jpkg.App
其他参数:--win-console 显示控制台日志; --verbose 显示详细信息
Gradle命令行方式打包:
version="0.0.1" task jpackage(type: Exec) { dependsOn jar //["jar","myProguardTask"] // C:\Users\aw\AppData\Local\Temp\ComeInHandy\ def appTempPath = "${System.getProperty('java.io.tmpdir')}ComeInHandy/"; def cmd = ["${javaHome}/bin/jpackage", "--name", "得心应手","--install-dir","ComeInHandy", '--dest', "${appTempPath}", '--input', jar.destinationDirectory.get(), '--main-jar', jar.archiveFileName.get(), '--main-class', 'com.openle.v1app.comeinhandy.App', '--win-console', // 显示控制台日志 '--verbose'] println cmd.join(" ") commandLine cmd }