• ベストアンサー

現在使用しているJAVAファイルのあるパス名を取得する方法

JAVAアプレットで、FileInputStreamを使っていまして、読み込むファイル を絶対パスで指定しています。 ※なぜか絶対パスでないと、ファイルを読み込まないのでそうしています。 それで絶対パスで指定してあるわけですが、このプログラムをいずれ色ん なマシンに入れ込む予定ですが、マシンの環境によってはCドライブ以外 にインストールすることも考えられます。 その為、絶対パスできってあるため、Dドライブなど、Cドライブ以外にイ ンストールされた場合用に、各プログラムを手直ししないといけません。 出来れば、その手間を省きたいと思っています。 今考えているのは、対象となるファイル(JAVAファイル又はクラスファイル) のパス名を取得して、そこからsubstringで変数に入れ込んだ値の先頭から 3文字を取得してドライブ名を取得出来るようにして、最終的に取り込む ファイルの先頭に、取得したドライブ名を入れ込んでやればいけるのかな? と思っています。 それで肝心の、パス名を取得する方法ってありますでしょうか? ちなみにgetPathと言うものがありますが、やってみた所うまくいきません でした。やり方が悪かったのかな? 簡単ですが、以下のような感じでgetPathを使ってみました。 public class Test extends Applet{ Test test = new Test(); String Dire; public void init(){ Dire = test.getPath(); } }

質問者が選んだベストアンサー

  • ベストアンサー
  • snnk
  • ベストアンサー率60% (3/5)
回答No.2

アプレットなんですよね。 基本的にアプレットは、セキュリティの問題上ローカル資源を使用することは出来ないのはご承知でしょうか? java plun-inを使用すれば別ですが。。。 あと、ソースですがコンパイルできましたのでしょうか? Appletには、getPathというメソッドは無いはずです。 それともTestクラスで別に定義しているのでしょうか?

gal
質問者

お礼

どうもありがとうございました。 別の方法でやることになりました。 ですが大変勉強になりました。

その他の回答 (1)

noname#2875
noname#2875
回答No.1

Appletのインスタンスに対して getPathとしてもコンパイルエラーでるのではないでしょうかね…。 AppletクラスにgetPathメソッド定義ないような気がしますが……。 FileクラスとかURLクラスとか…のインスタンスに対して使うメソッドだとおもうのですが…。 それともTestクラスに独自に定義してますか?

gal
質問者

お礼

貴重なご意見どうもありがとうございました。

gal
質問者

補足

AppletではgetPathは使えないんですね。 それでお伺いしたいのですが、下記の二つのやり方で、出来るのと 出来ないのがあります。 下の二つで行きますと、test.txtはクラスファイルと同じディレク トリ内に存在します。 ですから、絶対パスでなくてもいけるはずですが、絶対パスでなけれ ば、ファイルを読み込まないんです。 その為、わざわざパスを取得できるように何とかがんばっています。 下の二つのソースを見ただけでは原因はわからないと思いますが、もし 見当たる個所があれば教えてください。 また、アプレットクラスでパス名を取得することが出来る方法って他 に何かあるでしょうか? File inputFile = new File("test.txt");  →ファイルを読み込まない File inputFile = new File("C:/Java/test.txt");  →ファイルを正常に読み込む

関連するQ&A

専門家に質問してみよう