私はJavaでアプリケーションを作成していますが、AWS EC2マシン(Linux)で環境変数を使用する必要があります。アプリケーションでSystem.getenv("myvariable")
を使用して、特定の環境変数を取得しています。私は永続的な環境変数を設定する必要があり、現在は~/.bashrc
、~/.profile
、さらに~/.bash_profile
という変数を設定しています。 私はアル中で3つのファイルをexport myvariable=xyz
を与えているし、私はsource ~/.bashrc
、source ~/.profile
とsource ~/.bash_profile
を走りました。しかし、私はアプリケーションでnullになっています。私は~/.bash_profile
.Iで変数をエクスポートしていていてもいずれかの環境変数を取得することはできませんよ、なぜ私はまだ理解していないAWS EC2 Linuxで環境変数を追加する方法
でもecho $myvariable
を実行することによって確認されていると私はXYZを見ることができます。
上記の設定と同じ方法でローカルMACマシンに同じ環境変数を設定し、同じシェルを使用して同じJavaコードを実行すると、変数に値が表示されます。
基本的に私はAWS EC2 Linuxマシンで毎回nullになっています。
変数を設定する必要がある他の場所はありますか?私もマシンを再起動しましたが、それは助けになりませんでした。
。どのようにJavaアプリケーションを実行しますか? –
私はmavenアプリケーションを実行するためにspring-bootを使用しています。そこで私はこのコマンドを発行します。sudo ./mvnw spring-boot:アプリケーションを実行するために実行します。 –
デフォルトでは、 'sudo'は環境変数を保存しないので、' sudo'を使ってアプリケーションを実行しているときに、必要な環境変数はすべてアプリケーションで利用できなくなります。なぜあなたのサービスを 'sudo'として実行する必要があるのか?ポート特権? – birryree