方法 1: 相対パスで設定ファイルを設定する
(1) jar パッケージと同じディレクトリに設定ファイル conf.properties を作成し、設定データを書き込みます。 confData=data
(3) jar パッケージを実行します
(2) 自動テストコードの記述を開始します//from www.fhadmin.cn public class Test{ public String getData() throws IOException { //读取配置文件 Properties properties = new Properties(); File file = new File("conf.properties"); FileInputStream fis = new FileInputStream(file); properties.load(fis); fis.close(); //获取配置文件数据 String confData = properties.getProperty("confData"); System.out.println(confData); } }
java -jar jarNanexxx
(1) jar パッケージと同じディレクトリに構成ファイル conf.properties を作成し、構成データを書き込みます:方法 2: 絶対パス設定設定ファイル
問題の解決策: jar パッケージを jar と同じレベルのディレクトリにある相対パス方法を使用して手動で実行する場合は問題ありませんパッケージには含まれていますが、スケジュールされたスケジュールに Linux システムの crontab ファイルを使用するとエラーが発生します。その理由は、スクリプトを手動で実行する場合、現在のシェル環境で実行し、プログラムが環境変数を見つけることができるためです。システムがタスクのスケジュールを自動的に実行する場合、デフォルト環境以外の環境変数はロードされません。したがって、タスクの実行に必要なすべての環境変数を crontab ファイルで指定するか、プログラム内で絶対パスを使用する必要があります。
confData=data
(3) jarパッケージを実行(2) ) 記述開始 自動テストコードを入力
//from www.fhadmin.cn public class Test{ public String getData() throws IOException { //获取jar包同级目录 String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath(); String[] pathSplit = path.split("/"); String jarName = pathSplit[pathSplit.length - 1]; String jarPath = path.replace(jarName, ""); String pathName=jarPath+"minhang.properties"; System.out.println("配置文件路径:"+jarPath); //读取配置文件 Properties properties = new Properties(); File file = new File(pathName); FileInputStream fis = new FileInputStream(file); properties.load(fis); fis.close(); //获取配置文件数据 String confData = properties.getProperty("confData"); System.out.println(confData); } }
java -jar jarNanexxx
以上がspringboot はどのように jar パッケージを実行して外部構成ファイルを読み取るのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。