Linux Mint OSを搭載したサーバーがあり、いくつかの環境変数を読み取るサーバー側のMavenプロジェクトがあります。
環境変数は/etc/profile.d/my_env_vars.shで次のように宣言されています。
export MY_VAR=/opt/my_app
export PATH=$MY_VAR:$PATH
私のサーバー側には、Eclipse(サーバーにインストールされている)から実行すると、エラーなしで正常に動作する機能があります。
public File convert( byte [] image) throws IOException {
String filePath = System.getenv("MY_VAR");
File imageFile = File.createTempFile("TEMP", "tmp", new File(filePath));
...
return imagenFile;
}
私のクライアントサイドもMavenプロジェクトです。上記の関数にbyte []画像を送信し、サーバーから結果が返されますが、NullPointerExceptionエラーが発生しました。
java.lang.NullPointerException
java.io.File.<init>(File.java:277)
the second line of my function File imageFile = File.createTempFile("TEMP","temp...
サーバーターミナルですぐに、echo $ MY_VARによって環境変数を確認しました。これにより、正しい値(/ opt / my_app)が得られます。
サーバー側で関数が正しく機能するのに、クライアント側でnullPointerExceptionエラーが発生するのはなぜですか?
他のファイルの環境変数を〜/ .bashrc〜 / .profile /etc/bash.bashrcとして宣言してみましたが、何も機能しません。他の投稿を読んで〜/ .bash_profileを編集しようとしましたが、LinuxMintにはそのファイルがありません。
アドバイスをいただければ幸いです。
クライアントではNullPointerException
、環境変数が正しく設定されておらずnull
、のコンストラクターに渡されるため、がスローされFile
ます。
プットMY_VAR
で~/.profile
あなたがログインしたときに、ファイルや通知は一度だけロードされます。したがって、新しい環境変数を設定した後は、必ずログアウトしてから再度ログインしてください。ファイルが存在しない場合は、作成してください。
次を使用して、設定されていることをテストできます。
$ env | grep MY_VAR
MY_VAR=value
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加