- ベストアンサー
Javaでなぜ共通ディスクは認識されてない
File file = new File("G:\\test.xls") にGディスクは共有ディスクの場合、file.exists()はfalseを戻す (Gは認識されてない)、Gディスクをローカルディスクに変えると、file.exists()はtrueを戻す、これはなぜですか? ※G共有ディスクの権限はEveryOneにはフルコントロールが設定されてます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
共有ディスクとはWindowsのファイル共有のことで、Gは認識されていないというのはGドライブとしてネットワークドライブの割り当てがされていないという意味でよろしいでしょうか。 こう考えてみてください。 エクスプローラはそのPCのドライブを見せる機能+ファイル共有されているドライブを見せる機能を持っています。 そのPCのドライブを見せる機能はWindowsに限らないPCの基本的な機能なので、JavaというWindows以外でも動くことを想定したプログラムでも見えるけど、ファイル共有はWindows固有の機能だからJavaでは見えない。 どうやらJavaでファイル共有を扱うには専用のライブラリが必要なようです。参考URLをご覧下さい。(古いニュースなので公式サイトを見たほうがいいと思います。)
その他の回答 (2)
- PED02744
- ベストアンサー率40% (157/390)
ひょっとして、APサーバをサービスとして動作させていませんか? サービスは、SYSTEM もしくは LOCAL SERVICE ユーザとして動作するので、 共有ドライブは認識できません。 サービスの「ログオン」設定をあなたが共有宣言しているユーザIDに すればひょっとしたら、できるかもしれません。 SYSTEMユーザやLOCAL SERVICEユーザでは、相手マシンに対して共有設定ができないので、無理です。
>※マシンは三台:APサーバ、ファイルサーバ(Gディスクあり)、ローカル とのことですが、APサーバもWindowsでGドライブはネットワークドライブとして設定してありますよね? 念のため、確認です。
補足
>とのことですが、APサーバもWindowsでGドライブはネットワークドライブとして設定してありますよね?念のため、確認です。 確認しました、設定してます。
補足
ご回答ありがとうございます。 共有ディスクとはWindowsのファイル共有のことです、 Gはネットワークドライブの割り当てがされてます。 ※マシンは三台:APサーバ、ファイルサーバ(Gディスクあり)、ローカル いま、下記の現象が起こってます。 ローカルマシンのTomCatの下に、共有ディスクGにアクセスすることはできますが、APサーバ(Oracle Application Server)にデプロイされると、プログラムはGにアクセスするのはできません。