3

Eclipseプロジェクトごとに異なる構成ファイルを解析する必要がある構成クラスについて考えてみます。

たとえば、Configurationクラスがから呼び出された場合はProject1、を解析する必要special/path/fileXがあり、から呼び出されている場合は、Project2を解析する必要がありますspecial/path/fileY

Eclipseを使用し{project_name}てみましたが、驚くべきことに、現在のクラスの親プロジェクトではなく、カーソルで強調表示されているプロジェクトに解析されています。

できればJVM引数を使用して、Eclipseランタイムでプロジェクトを区別するにはどうすればよいですか?

4

3 に答える 3

2

これはあなたが説明した問題の回避策ですが、Eclipse から独立しており、本番環境でも簡単に動作するため、より良い解決策だと思います。

これを開始するプロジェクトに関係なく、クラスパスから同じファイルをロードするだけです。

/my/file/from/classpath.txt

ただし、このファイルは Project1 / Project2 にのみ配置して、セットアップに従ってさまざまなファイルが相互に除外されるようにします。

/Project1/src/my/file/from/classpath.txt
/Project2/src/my/file/from/classpath.txt

srcJava ソース フォルダはどこにありますか。これで、JVM パラメータを使用してこれをオーバーライドしたり、上記が欠落している場合はデフォルトを提供したりできます。

于 2012-05-07T13:04:42.407 に答える
0

または、Eclipseのインストール済みJREに移動して、prodの場合と同じように構成をJVMArgsとして設定することもできます。

必要に応じて、環境ごとにJREの差分コピーを作成できます。

また、IDEから実行している場合は、プロジェクトのルートであるSystem.getProperty( "user.dir")を取得できます。

そのシステムプロパティを使用して、呼び出し先を追跡できます。さらに良いことに、インストールされたJREのJVM引数を次のように設定します

-Dtheflaginprod=${project_loc}

project_loc = absolute path of the the project (/usr/projects/project1)
project_path = project name relative to the workspace  (/project1)
于 2012-05-13T02:40:17.703 に答える
0

最も簡単な方法は、Eclipse の実行構成を使用することだと思います。必要な数の構成を作成し、必要なすべての JVM 引数を指定して、それらを使用して起動するだけです。これは、本番モードで行うことにも非常に近いものになります。

于 2012-05-07T13:02:39.110 に答える