3

エイリアスを使用してJavaクラスパスのファイルを渡す方法はありますか?

例えば:

java -cp ./file_type1.txt#file.txt com.example.JavaProgram

このようにして、プログラムはfile_type1.txtをクラスパスのfile.txtとして参照します。したがって、同じ参照を持つ複数の同様のファイルをプログラムで渡すことができ、Javaプログラムで何も変更する必要はありません。

4

2 に答える 2

2

JAVAにはそのような方法はありません(私が思う他の言語でも...)。

ところで、JAVAでは、ファイルがクラスパスに追加されると、その名前(パスなし)でのみコンテンツを取得できますClassLoader.getSystemClassLoader().getResourcesAsStream("file_type1.txt")。どこにいても。

次に、2つのオプションがあります。

  • アプリケーションのクラスパス(System.getProperty("java.class.path")+ File.pathSeparatorでエントリを分割)を解析して、コマンドラインで指定されたファイル名(おそらくパス内の唯一のtxtファイル)を検出します
  • アプリケーションのパラメータとしてファイルの名前(名前のみ)を渡します。java-cp ./file_type1.txt com.example.JavaProgram file_type1.txt

次に、それを解析して、追加の.txtファイル名の名前を特定する必要があります。

エイリアスを作成できないため、どういうわけか、アプリケーションに動的な動作を導入する必要があります。

こんにちは。

于 2012-11-09T13:57:50.347 に答える
0

ln -s代わりに、Java以外のUNIXプラットフォームでシンボリックリンク()を作成することをお勧めします。

于 2012-11-09T08:19:45.283 に答える