[消息更新爲包含腳本及其輸出,如您所述]。在bash腳本中包含java -version命令
我已經創建了一個在Ubuntu上安裝Oracle Java的Linux腳本。
腳本如下:
#!/bin/bash
# This script installs Oracle Java 7u51 jdk on Ubuntu Linux 64 bit
echo "Starting Oracle Java JDK Installation..."
sudo mkdir /usr/local/java
cd
sudo cp -r jdk-7u51-linux-x64.tar.gz /usr/local/java
rm jdk-7u51-linux-x64.tar.gz
cd /usr/local/java
echo "Unpacking java files in /usr/local/java"
sudo tar xvzf jdk-7u51-linux-x64.tar.gz
sudo rm jdk-7u51-linux-x64.tar.gz
sleep 1s
echo "Updating system Path file /etc/profile with Java variables"
sudo sed -i '$ a\JAVA_HOME=/usr/local/java/jdk1.7.0_51' /etc/profile
sudo sed -i '$ a\PATH=$PATH:$HOME/bin:$JAVA_HOME/bin' /etc/profile
sudo sed -i '$ a\export JAVA_HOME' /etc/profile
sudo sed -i '$ a\export PATH' /etc/profile
sleep 1s
echo "Updating alternatives"
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/
jdk1.7.0_51/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/
jdk1.7.0_51/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/
jdk1.7.0_51/bin/javaws" 1
sudo update-alternatives --set java /usr/local/java/jdk1.7.0_51/bin/java
sudo update-alternatives --set javac /usr/local/java/jdk1.7.0_51/bin/javac
sudo update-alternatives --set javaws /usr/local/java/jdk1.7.0_51/bin/javaws
sleep 3s
echo "Reload system wide Path /etc/profile"
. /etc/profile
sleep 3s
echo "Testing if Java is installed correctly. System must reply with Java version."
java –version
sleep 1s
javac -version
腳本運行正常做它的事和Java安裝正確。 但是最後的java -version命令在終端上給出了這個輸出。
測試Java是否正確安裝。系統必須回覆Java版本。
錯誤:無法找到或加載主類-version
的javac 1.7.0_51
兩件事情難不倒我。 第一個是,javac -version命令在腳本中工作,但不在java -version命令中。
第二個是,如果我在腳本結束後立即去終端並輸入自己的java -version,它就可以工作。
通過「它不工作」,你的意思是你得到一個異常或它不輸出任何東西?另外,如果你創建了一個只調用'java -version'的測試bash腳本,這是否工作?添加這兩個數據點可能會幫助您更好地獲得反饋。 – DreadPirateShawn
PS:概念驗證是它*應該*從一個bash腳本內工作。我剛剛創建了一個由'#!/ bin/bash'和'java -version'組成的雙行腳本,它工作正常。 – DreadPirateShawn
@ concept303是的,我相信DreadPirateShawn說的是做這件事的正確方法 - 試着看看這是否可以用最簡單的設置。如果沒有,請粘貼您在此使用的代碼,以及在腳本外部(即直接在您的終端中)正常運行的命令示例。 –