Skip to content

Commit 7551eca

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

File tree

3 files changed

+25
-43
lines changed

3 files changed

+25
-43
lines changed

Diff for: app/build.gradle.kts

+21-36
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
@@ -250,7 +251,6 @@ tasks.register("generateSnapConfiguration"){
250251
- openjdk-17-jre
251252
override-prime: |
252253
snapcraftctl prime
253-
chmod -R +x opt/processing/lib/app/resources/jdk-*
254254
rm -vf usr/lib/jvm/java-17-openjdk-*/lib/security/cacerts
255255
""".trimIndent()
256256
dir.file("../snapcraft.yaml").asFile.writeText(content)
@@ -322,40 +322,26 @@ tasks.register<Copy>("includeJavaMode") {
322322
into(composeResources("modes/java/mode"))
323323
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
324324
}
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(""))
325+
tasks.register("includeJdk") {
326+
dependsOn("createDistributable")
327+
doFirst {
328+
val jdk = Jvm.current().javaHome.absolutePath
329+
val target = layout.buildDirectory.dir("compose/binaries").get().asFileTree.matching { include("**/include.jdk") }
330+
.files
331+
.firstOrNull()
332+
?.parentFile
333+
?.resolve("jdk")
334+
?.absolutePath
335+
?: error("Could not find include.jdk")
336+
337+
val isWindows = System.getProperty("os.name").lowercase().contains("win")
338+
val command = if (isWindows) {
339+
listOf("xcopy", "/E", "/I", "/Q", jdk, target)
340+
} else {
341+
listOf("cp", "-a", jdk, target)
356342
}
343+
ProcessBuilder(command).inheritIO().start().waitFor()
357344
}
358-
finalizedBy("prepareAppResources")
359345
}
360346
tasks.register<Copy>("includeSharedAssets"){
361347
from("../build/shared/")
@@ -427,7 +413,6 @@ tasks.register("signResources"){
427413
dependsOn(
428414
"includeCore",
429415
"includeJavaMode",
430-
"includeJdk",
431416
"includeSharedAssets",
432417
"includeProcessingExamples",
433418
"includeProcessingWebsiteExamples",
@@ -540,7 +525,7 @@ afterEvaluate {
540525
}
541526
}
542527
tasks.named("createDistributable").configure {
543-
dependsOn("signResources", "includeJdk")
544-
finalizedBy("setExecutablePermissions")
528+
dependsOn("signResources")
529+
finalizedBy( "includeJdk","setExecutablePermissions")
545530
}
546531
}

Diff for: 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()) {

Diff for: build/shared/include.jdk

Whitespace-only changes.

0 commit comments

Comments
 (0)