2012-09-25 24 views
23

リモートLinuxサーバ上の既存のjarファイル内のプロパティファイル(application.propertiesなど)の編集方法。リモートLinuxサーバ上の既存のjarファイル内のapplication.propertiesまたはapplication.ymlファイルの内容を編集する方法

ジャーが/home/user/my-spring-boot.jarに位置していると私は

username=foo 

username=bar 

にファイルを開いて、プロパティを変更する方法

から application.propertiresの内部名を変更したいと想像してみ?

答えて

48

ジャーに名前を変更することができ、 vimは、zipファイルとその内容を直接編集できます。 vim.jarのように、ファイルナビゲータを使用してプロパティファイルを探して変更します。 vimはあなたの編集でジップを維持します。

詳細はhereを参照してください。

+0

ファイル非常に便利なようだが、私は「注意:ファイル名は一致しない」を取得した後にエラーが発生しナビゲータでファイルを選択します。 –

+3

私はこの答えに出会えたうれしいです! vimはvi以来最高のものです –

+0

これは、jarにバンドルされているプロパティを "上書き"する正しい方法ではないと思います。 より良い方法は、Springブートアプリケーションを起動するときに、-Dusername = barまたはenv変数を使用してプロパティを渡すことです。 – ootero

2

可能性のあるルートは、zipファイルにエキスをjarファイルをコピーし、あなたのプロパティを変更し、ZIPに圧縮し.jarファイルを別の拡張子を持つ単純.zipファイルです

cp myJar.jar myJar.zip 
unzip myJar.zip 
vim myProperties.properties (doing the change here) 
zip allMyFiles into myJar.zip 
cp myJar.zip myModifiedJar.jar 
0

jar xf bigExecutableJar.jarコマンドでjarアーカイブを解凍することができます。可能であれば、atoolをインストールすることを推奨します。これは、アーカイブをパック/アンパックするためのより良いコマンドラインを提供するからです。

viの処理方法がわからない限り、nanoをエディタとして使用してください。また、一部のシステムにはmcがインストールされています。これはエディタを内蔵したコンソールベースのファイルエクスプローラです。

ファイルを変更した後、あなたがjar cf bigExecutableJar-new.jar -C .(またはatool --add)を使用して再度アーカイブをパッケージ化することができ

あなたは本当に/はjarを使用する必要がある場合、それは時々doesnのため、私が最初に新しいディレクトリにコマンドを試してみることをお勧めあなたが期待しているように行動しません。 元のファイルで使用しないでください! jarファイル

emacs jarfile 

上の編集内容について

1

使用emacsのjarファイルを開いた後、あなたは、フォルダやファイルを閲覧することができます。 jdbc.propertiesを検索して編集します。次に、c-x c-sで変更を保存します。

注:zipファイルをインストールし、あなたが(バックアップのためのあなたのファイルをコピーした後に)emacsでそれを行うことができます

1

を解凍する必要はある:

$ cp /home/user/bigExecutableJar.jar /home/user/bigExecutableJar.jar.bak 
$ emacs /home/user/bigExecutableJar.jar 
  • それが大きい場合、それはあなたを聞いてきます本当にファイルを開く場合は
  • 次に、バッファ内の変更するファイルを検索して、jarファイル内のすべてのファイルを一覧表示できます。必要に応じてC-sを使用して検索してください。
  • ファイルを選択して開き、RETを押します。
  • 変更を加えてC-x C-sで保存してください。
  • 最後に、EmacsをC-x C-cで閉じます。
1

既存のJARアーティファクトを変更することはお勧めできません。代わりに、Springブートではバンドルされたプロパティをいくつかの方法で外部の値で簡単に上書きすることができます。

たとえば、application.propertiesファイルをJARの横に置き換えて、上書きする値を付けることができます。バンドルされた既定値に戻ってしまうので、プロパティファイル全体をコピーする必要はなく、変更するプロパティのみをコピーする必要はありません。

詳細はここで文書化されています:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

-1
sed -i "s/\(customAuthHeaderName=\).*\$/\1${customAuthHeaderName}/" configuration.properties 

sed -i "s/\(logoutPage=\).*\$/\1${logoutPage}/" configuration.properties 

第二customAuthHeaderName値は、プロパティから来ている

+0

あなたはいくつかの追加の説明を提供する必要があります –

+0

これは質問への答えを提供しません。十分な[評判](https://stackoverflow.com/help/whats-reputation)があれば、[投稿にコメントする]ことができます(https://stackoverflow.com/help/privileges/comment)。代わりに、[質問者からの明確化を必要としない回答を提供する](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-c​​an- i-do-代わりに)。 - [レビューの投稿](/レビュー/低品質の投稿/ 18600327) – Keshav

関連する問題