解決在/etc/profile檔案中添加Java環境變數後執行報unexpected token的錯誤

來源:互聯網
上載者:User

錯誤描述:

在/etc/profile檔案結尾設定了Java的環境變數儲存後執行“source /etc/profile”或重登入後報如下錯誤:


使用“env”命令查看系統內容變數發現沒有設定成功。

原因分析:

因為使用了FlashFXP軟體在Windows系統下開啟修改的/etc/profile檔案導致檔案的系統格式發生變化。Dos和Windows採用斷行符號+換行CR/LF表示下一行,而UNIX/Linux採用分行符號LF表示下一行,蘋果機(MAC OS系統)則採用斷行符號符CR表示下一行。CR用符號“\r”表示, 十進位ASCII代碼是13, 十六進位代碼為0x0D;LF使用“\n”符號表示, ASCII代碼是10, 十六製為0x0A。所以Windows平台上換行在文字檔中是使用 0d 0a 兩個位元組表示, 而UNIX和蘋果平台上換行則是使用0a或0d一個位元組表示。一般作業系統上的運行庫會自動決定文字檔的換行格式。如一個程式在Windows上運行就產生CR/LF換行格式的文字檔,而在Linux上運行就產生LF格式換行的文字檔。在一個平台上使用另一種分行符號的檔案檔案可能會帶來意想不到的問題, 特別是在編輯程式碼時。有時候代碼在編輯器中顯示正常, 但在編輯時卻會因為分行符號問題而出錯。上述錯誤就是因為使用了Windows系統下的記事本開啟修改profile檔案導致分行符號被轉換成了CR/LF,而在Linux系統下執行時就會因為識別不出斷行符號符CR而報unexpected token錯誤。

解決方案:

我們可以使用Notepad++這個文字編輯器來進行不同作業系統文本格式的轉換。使用Notepad++開啟profile檔案後在功能表列中選擇“編輯”->“檔案格式轉換”->“轉換為UNIX格式”儲存後則會將Windows的分行符號CR/LF轉換為Linux的LF,此時再在Linux系統下執行“source /etc/profile”便不會再報上述的錯誤,環境變數也將設定成功。




相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.