私は、テキストファイルを含むJava jarファイルを持っています。 jarファイル内のJavaコードから、JNAを使用してCライブラリの関数を呼び出しています。テキストファイルへのファイルパスをC関数の1つに渡す必要があり、Cプログラムがそれを読むことができます。Java JARのテキストファイルへのパスをCライブラリに渡しますか?
それはCプログラムではなく、ファイルを読み込む必要があるJavaプログラムですので、私は単純にこれを行うことはできません。
getClass().getResourceAsStream("MyFile.txt");
Cプログラムは、私のコントロール下にない、そしてそれは理解していませんjar:file://
パス。
どうすればいいですか? jarの内容は自動的にどこかに抽出されますか?どこかでそれを抽出する必要がありますか?権限をどこにでも書くことができない場合はどうしたらいいですか?
可能であれば、私はファイルシステムのどこかに、そのファイルをjarファイルに入れないでください。そうすれば、クライアントコード(あなたのCプログラム)を理解しやすくなります。そして、jarファイルは内部的なものである可能性が高いです(jarファイルの開発者は、このリソースが他の人によって使用されていることをよく知らないかもしれません。これにより、ファイルの更新が容易になります(設定ファイルを更新するためにモジュールをリリースする必要はありません)。 – spi