52 lines
1.8 KiB
Nu
52 lines
1.8 KiB
Nu
# java-utils.nu
|
|
# JDK management functions for Nushell (modern syntax)
|
|
|
|
export def --env set-jdk [path: string, --quiet (-q)] {
|
|
let bin_path = ([$path, 'bin'] | path join)
|
|
$env.JAVA_HOME = $path
|
|
|
|
# Update PATH: remove any entry that looks like a JDK bin and add the new one
|
|
if ($env.PATH | describe | str contains 'list') {
|
|
$env.PATH = ($env.PATH | where {|row|
|
|
let is_jdk_bin = (($row | str contains 'jdk') and ($row | str ends-with 'bin'))
|
|
not $is_jdk_bin
|
|
} | prepend $bin_path)
|
|
} else {
|
|
let sep = (char esep)
|
|
let path_list = ($env.PATH | split row $sep)
|
|
$env.PATH = ($path_list | where {|row|
|
|
let is_jdk_bin = (($row | str contains 'jdk') and ($row | str ends-with 'bin'))
|
|
not $is_jdk_bin
|
|
} | prepend $bin_path | str join $sep)
|
|
}
|
|
|
|
if not $quiet {
|
|
print $"JAVA_HOME set to: ($path)"
|
|
try { java -version } catch { print "Warning: java command not found in new path." }
|
|
}
|
|
}
|
|
|
|
export def --env jdk8home [--quiet (-q)] {
|
|
set-jdk 'C:\Program Files\Eclipse Adoptium\jdk-8.0.482.8-hotspot' --quiet=$quiet
|
|
}
|
|
|
|
export def --env jdk8home32 [--quiet (-q)] {
|
|
set-jdk 'C:\Program Files (x86)\Eclipse Adoptium\jdk-8.0.472.8-hotspot' --quiet=$quiet
|
|
}
|
|
|
|
export def --env jdk8home32Liberica [--quiet (-q)] {
|
|
set-jdk 'C:\Users\reazul.ashraf\scoop\apps\liberica8-full-jdk\current' --quiet=$quiet
|
|
}
|
|
|
|
export def --env jdk8homeCorretto [--quiet (-q)] {
|
|
set-jdk 'C:\Users\reazul.ashraf\scoop\apps\corretto8-jdk\current' --quiet=$quiet
|
|
}
|
|
|
|
export def --env jdk21home [--quiet (-q)] {
|
|
set-jdk 'C:\Program Files\Eclipse Adoptium\jdk-21.0.10.7-hotspot' --quiet=$quiet
|
|
}
|
|
|
|
export def --env jdk25home [--quiet (-q)] {
|
|
set-jdk 'C:\Program Files\Eclipse Adoptium\jdk-25.0.2.10-hotspot' --quiet=$quiet
|
|
}
|