อูบุนตู 18.04.6 LTS
ทุบตี 4.4.0
ฉันมีจาวา 4 รุ่นในกล่อง Linux ของฉัน ฉันยังมีเซิร์ฟเวอร์เกม MC หลายตัวที่ทำงานบนกล่องนี้ เมื่อฉันเรียกใช้เซิร์ฟเวอร์บางตัวที่ต้องใช้ Java 8 ฉันจะชี้ไปที่ Java 8 ดังนี้:
#!/bin/bash
java="/usr/lib/jvm/java-8-openjdk-amd64/bin"
เมื่อฉันเรียกใช้เซิร์ฟเวอร์บางอย่างที่ต้องใช้ Java 16 ฉันจะชี้ไปที่ Java 16 ดังนี้:
#!/bin/bash
java="/usr/lib/jvm/java-16-oracle/bin"
ดังนั้นในความพยายามที่จะอิมพอร์ตจาวาเวอร์ชันเหล่านี้ไปยังตัวแปรอย่างถูกต้อง ฉันจึงแก้ไขไฟล์ /etc/profile และทุกอย่างจาก #== จาวา 7 และฉันเพิ่มด้านล่าง:
# /etc/profile: ไฟล์ .profile ทั่วทั้งระบบสำหรับเชลล์เป้าหมาย (sh(1))
# และเชลล์ที่เข้ากันได้ของบอร์น (bash(1), ksh(1), ash(1), ...)
ถ้า [ "${PS1-}" ]; แล้ว
ถ้า [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; แล้ว
# ไฟล์ bash.bashrc ตั้งค่าเริ่มต้น PS1 แล้ว
# PS1='\h:\w\$ '
ถ้า [ -f /etc/bash.bashrc ]; แล้ว
. /etc/bash.bashrc
ไฟ
อื่น
ถ้า [ "`id -u`" -eq 0 ]; แล้ว
PS1='#'
อื่น
PS1='$ '
ไฟ
ไฟ
ไฟ
ถ้า [ -d /etc/profile.d ]; แล้ว
สำหรับฉันใน /etc/profile.d/*.sh; ทำ
ถ้า [ -r $i ]; แล้ว
. $i
ไฟ
เสร็จแล้ว
ยกเลิกการตั้งค่า
ไฟ
#== จาวา 7
#== ======
JAVA7=/usr/lib/jvm/zulu7-ca-amd64
PATH=$PATH:$HOME/bin:$JAVA7/bin
#== จาวา 8
#== ======
JAVA8=/usr/lib/jvm/java-8-openjdk-amd64
PATH=$PATH:$HOME/bin:$JAVA8/bin
#== จาวา 11
JAVA11=/usr/lib/jvm/java-11-openjdk-amd64
PATH=$PATH:$HOME/bin:$JAVA11/bin
#== จาวา 16
JAVA16=/usr/lib/jvm/java-16-oracle
PATH=$PATH:$HOME/bin:$JAVA16/bin
ส่งออก JAVA7
ส่งออกเส้นทาง
ส่งออก JAVA8
ส่งออกเส้นทาง
ส่งออก JAVA11
ส่งออกเส้นทาง
ส่งออก JAVA16
ส่งออกเส้นทาง
หากสิ่งนี้ถูกต้องเมื่อฉันใช้ JAVA16 ในสคริปต์ ฉันจะเรียกใช้ในสคริปต์เริ่มต้นได้อย่างไร