簡體   English   中英

使用在 linux 中執行程序后保留的 Java 程序設置/創建環境變量

[英]Set/Create Environment Variable using Java program that persist after execution prgram in linux

我需要創建一個 Java 解決方案,它可以使用 Java 代碼創建/設置特定的環境變量。 這些新的環境變量將被同一台機器上的另一個 java 程序使用。 我找到了可以使用 processbuilder 在同一進程中創建環境變量的代碼。

這不是環境變量的工作方式。

環境變量本質上是傳遞給程序的一組額外參數。 如果該程序輪流啟動一個新程序,那么它可以轉發或不轉發其環境變量,並且可以在它正在啟動的程序中設置(或取消設置)任何其他環境變量; 但是環境變量不是機器的全局屬性,程序無法僅僅因為它們在同一台機器上就將環境變量發送給另一個程序。

相反,您需要第一個程序將必要的鍵值映射存儲在主機上某處的文件中,第二個程序需要讀取這些映射。

也就是說,您可能會發現將環境變量用作解決方案的一部分很有幫助; 例如,您可以讓您的第一個程序以 Bash 將解釋為設置環境變量的格式編寫鍵值映射:

export foo=bar
export baz=bip

然后使用 Bash包裝器腳本啟動您的第二個程序,該腳本首先拉入鍵值映射( source file_that_the_first_program_wrote_to.txt )然后執行它。

Java 中沒有“環境變量”的持久化機制。

這意味着您必須研究其他選項來持久化信息。

當您談論適合環境變量的簡單事物時,自然要使用的是 java Properties

意思是:你在定義的地方有一個(或多個)屬性文件; 你的一些 Java 程序只是讀取這些文件; 而其他人也可能操縱這些文件的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM