Open Ali-RS opened 2 years ago
Looks like it copies Jre here.
@siordache is there a way to override it?
For now I could fix it with the below snippet but there should be a cleaner way to do it.
tasks.runtime.doLast {
if(runtime.targetPlatforms) {
runtime.getTargetPlatforms().get().values().forEach { platform ->
File jreDir = new File(runtime.jreDir.get().asFile, "$project.name-$platform.name")
File imageDir = new File(runtime.imageDir.get().asFile, "$project.name-$platform.name")
createRuntime(jreDir, imageDir)
}
} else {
createRuntime(runtime.jreDir.get().asFile, runtime.imageDir.get().asFile)
}
}
void createRuntime(File jreDir, File imageDir) {
project.delete(imageDir)
copyJre(jreDir, imageDir)
copyAppTo(imageDir)
}
void copyJre(File jreDir, File imageDir) {
project.copy {
from jreDir
into new File(imageDir, "jre")
}
}
void copyAppTo(File imageDir) {
project.copy {
from("$buildDir/install/$project.name")
into imageDir
}
}
Reassign the runtime dir to another path is not a problem, you can
app.runtime=new jre path
below [Application] in projectName.cfg in App Dir. There is no good way to amend this cfg easily, so I bakup one common cfg and cover it. Do not add version
variable in project build.gradle, otherwise the content in cfg will change with version.task afterBuildTask(dependsOn: jpackageImage) doLast {
def raw = "${rootDir}/gem"
def build = "${buildDir}/jpackage/gem"
copy {
from "${raw}/gemConfig"
into "${build}/gemConfig"
exclude 'config.json'
exclude 'recipes.json'
exclude 'dynamic.*'
}
copy {
from "${raw}/appCfgBackup/gem.cfg"
into "${build}/app"
}
copy {
from "${raw}"
into "${build}"
include '*.dll'
include 'UpdateLog.txt'
}
delete "${build}/runtime"
}
[Application]
app.classpath=$APPDIR\gem-all.jar
app.mainclass=com.juno.gem.Launcher
app.runtime=C:\Juno\runtime\jrt
[JavaOptions]
java-options=-Djpackage.app-version=1.0
java-options=-Djava.library.path=C:/Juno/runtime;$APPDIR\..
I just did a test build here and the layout I see is nothing like what's described above.
I get:
app then has the jars for the app, while runtime looks like the cut-down JRE.
This ticket is quite old, however, so it's quite possible the software is a completely different version now, or you were running on a much older JDK.
Is this issue still a problem? There's still no way to configure the layout, but the jre is at least in its own directory.
Hi
The runtime and runtimeZip tasks add JRE binaries into the "lib" directory where my app jars are. Also, a "conf" and "legal" directory is created inside the app directory. How can I change this so all JRE-related stuff gets moved into a single directory named "jre" inside the app directory?
Regards