Skip to content

Commit d1e458c

Browse files
committed
Change for includeJDK to grab the running JDK
1 parent ecd219b commit d1e458c

File tree

2 files changed

+25
-42
lines changed

2 files changed

+25
-42
lines changed

app/build.gradle.kts

+21-35
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import org.gradle.internal.jvm.Jvm
12
import org.gradle.kotlin.dsl.support.zipTo
23
import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
34
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
@@ -322,40 +323,26 @@ tasks.register<Copy>("includeJavaMode") {
322323
into(composeResources("modes/java/mode"))
323324
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
324325
}
325-
tasks.register<Download>("includeJdk") {
326-
val os = DefaultNativePlatform.getCurrentOperatingSystem()
327-
val arch = when (System.getProperty("os.arch")) {
328-
"amd64", "x86_64" -> "x64"
329-
else -> System.getProperty("os.arch")
330-
}
331-
val platform = when {
332-
os.isWindows -> "windows"
333-
os.isMacOsX -> "mac"
334-
else -> "linux"
335-
}
336-
337-
val javaVersion = System.getProperty("java.version").split(".")[0]
338-
val imageType = "jdk"
339-
340-
src("https://api.adoptium.net/v3/binary/latest/" +
341-
"$javaVersion/ga/" +
342-
"$platform/" +
343-
"$arch/" +
344-
"$imageType/" +
345-
"hotspot/normal/eclipse?project=jdk")
346-
347-
val extension = if (os.isWindows) "zip" else "tar.gz"
348-
val jdk = layout.buildDirectory.file("tmp/jdk-$platform-$arch.$extension")
349-
dest(jdk)
350-
overwrite(false)
351-
doLast {
352-
copy {
353-
val archive = if (os.isWindows) { zipTree(jdk) } else { tarTree(jdk) }
354-
from(archive){ eachFile{ permissions{ unix("755") } } }
355-
into(composeResources(""))
326+
tasks.register("includeJdk") {
327+
dependsOn("createDistributable")
328+
doFirst {
329+
val jdk = Jvm.current().javaHome.absolutePath
330+
val target = layout.buildDirectory.dir("compose/binaries").get().asFileTree.matching { include("**/include.jdk") }
331+
.files
332+
.firstOrNull()
333+
?.parentFile
334+
?.resolve("jdk")
335+
?.absolutePath
336+
?: error("Could not find include.jdk")
337+
338+
val isWindows = System.getProperty("os.name").lowercase().contains("win")
339+
val command = if (isWindows) {
340+
listOf("xcopy", "/E", "/I", "/Q", jdk, target)
341+
} else {
342+
listOf("cp", "-a", jdk, target)
356343
}
344+
ProcessBuilder(command).inheritIO().start().waitFor()
357345
}
358-
finalizedBy("prepareAppResources")
359346
}
360347
tasks.register<Copy>("includeSharedAssets"){
361348
from("../build/shared/")
@@ -427,7 +414,6 @@ tasks.register("signResources"){
427414
dependsOn(
428415
"includeCore",
429416
"includeJavaMode",
430-
"includeJdk",
431417
"includeSharedAssets",
432418
"includeProcessingExamples",
433419
"includeProcessingWebsiteExamples",
@@ -540,7 +526,7 @@ afterEvaluate {
540526
}
541527
}
542528
tasks.named("createDistributable").configure {
543-
dependsOn("signResources", "includeJdk")
544-
finalizedBy("setExecutablePermissions")
529+
dependsOn("signResources")
530+
finalizedBy( "includeJdk","setExecutablePermissions")
545531
}
546532
}

app/src/processing/app/Platform.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -391,17 +391,14 @@ static public File getContentFile(String name) {
391391
static public File getJavaHome() {
392392
var resourcesDir = System.getProperty("compose.application.resources.dir");
393393
if(resourcesDir != null) {
394-
var jdkFolder = Arrays.stream(new File(resourcesDir).listFiles((dir, name) -> dir.isDirectory() && name.startsWith("jdk-")))
395-
.findFirst()
396-
.orElse(null);
397-
if(Platform.isMacOS()){
398-
return new File(jdkFolder, "Contents/Home");
399-
}
394+
var jdkFolder = new File(resourcesDir,"jdk");
395+
if(jdkFolder.exists()){
400396
return jdkFolder;
397+
}
401398
}
402399

403400
var home = System.getProperty("java.home");
404-
if(home != null && new File(home, "bin/java").exists()){
401+
if(home != null){
405402
return new File(home);
406403
}
407404
if (Platform.isMacOS()) {

0 commit comments

Comments
 (0)