jarファイルで取り扱う際の注意点

jarファイルで取り扱う際の注意点

1)ファイルパスをスラッシュ表記する(円サインはびみょう)

jarファイルの中では、ディレクトリの区切りを円サイン(またはバックスラッシュ)ではなく、スラッシュにする必要があるようです。
画像ファイルや音楽ファイルの指定を修正する必要があります。

「MACなどでの注意点」でも同じことを書いていますが、全体的にはスラッシュにした方が問題が起きにくいようです。

円サイン自体は、Windowsの標準といいますか、Windowsでしか使えない。と思った方が良いかもしれません。
(パスの部分はどうしても、プラットフォームに依存する部分があると思われます)

jarでない状態 - 通常の状態でスラッシュでも問題なく動くため、今後はスラッシュで記述していこうかと思います。(検証を今後も重ねていきます)

2)ファイル名の英語の大文字/小文字に気を付ける

大文字と小文字が1字でも間違っていると、ファイルが読み込めません。

jarでない状態 - 通常の状態では(Windowsの場合だけかもしれない)、英大文字/小文字が間違っていても読込ができます。

jarの場合は、厳密に判断されます。

3)Wave(Clip系)を取り扱う際には、InputStreamからBufferedInputStreamを生成して利用する

InputStreamからwaveファイルを読み込むと、

java.io.IOException: mark/reset not supported
at java.util.zip.InflaterInputStream.reset(InflaterInputStream.java:286)
at java.io.FilterInputStream.reset(FilterInputStream.java:226)
at com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream(SoftMidiAudioFileReader.java:139)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)と

となり、読み込むことができない。
BufferedInputStream bis = new BufferedInputStream(is);
として、BufferedInputStreamから利用する。

参考にしたページ。英語でよく分かんないのですが、それっぽい。
https://stackoverflow.com/questions/5529754/java-io-ioexception-mark-reset-not-supported

対応版は、
SKK_4_4_1_FX
として公開します。

シェアしていただけるとうれしいです。