エイリアスを使用してJavaクラスパスのファイルを渡す方法はありますか?
例えば:
java -cp ./file_type1.txt#file.txt com.example.JavaProgram
このようにして、プログラムはfile_type1.txtをクラスパスのfile.txtとして参照します。したがって、同じ参照を持つ複数の同様のファイルをプログラムで渡すことができ、Javaプログラムで何も変更する必要はありません。
エイリアスを使用してJavaクラスパスのファイルを渡す方法はありますか?
例えば:
java -cp ./file_type1.txt#file.txt com.example.JavaProgram
このようにして、プログラムはfile_type1.txtをクラスパスのfile.txtとして参照します。したがって、同じ参照を持つ複数の同様のファイルをプログラムで渡すことができ、Javaプログラムで何も変更する必要はありません。
JAVAにはそのような方法はありません(私が思う他の言語でも...)。
ところで、JAVAでは、ファイルがクラスパスに追加されると、その名前(パスなし)でのみコンテンツを取得できますClassLoader.getSystemClassLoader().getResourcesAsStream("file_type1.txt")
。どこにいても。
次に、2つのオプションがあります。
System.getProperty("java.class.path")
+ File.pathSeparatorでエントリを分割)を解析して、コマンドラインで指定されたファイル名(おそらくパス内の唯一のtxtファイル)を検出します次に、それを解析して、追加の.txt
ファイル名の名前を特定する必要があります。
エイリアスを作成できないため、どういうわけか、アプリケーションに動的な動作を導入する必要があります。
こんにちは。
ln -s
代わりに、Java以外のUNIXプラットフォームでシンボリックリンク()を作成することをお勧めします。