2016-10-07 8 views
0

ファイルの内容を読み取り、処理して結果を返すクラス(たとえばClassA)を持つデスクトップJavaアプリケーションを作成しました。ファイル名はプロジェクトに関連して指定されました同じファイルパスを使用するJavaデスクトップとWebアプリケーション

ファイル入力=新しいファイル( "config.xml");

今、プロジェクトをWebプロジェクトにアップグレードしたいと思います。同じファイルの内容を読み込むために同じJavaクラス(つまりClassA)を呼び出すサーブレットを作成しましたが、今回はファイルが見つからないというエラーメッセージが表示されます。

デスクトップとウェブのバージョンがスムーズに動作するように、コードをどのようにリファクタリングしますか。

答えて

0

ファイルconfig.xmlをウェブサーバー上の適切な場所にコピーするだけです。 public_html/www/

Webアプリケーションの「作業ディレクトリ」は、展開先のWebサーバーの構成によって異なります。

0

パスを指定せずにファイルを読み込むと、現在のディレクトリから読み込まれます。このディレクトリはSystem.getProperty( "user.dir")でアクセスできます。

したがって、WebアプリケーションでSystem.getProperty( "user.dir")によって返される値を調べて、そこにファイルを配置することができます。 しかし、これは環境やサーブレットサーバー(Tomcatなど)によって異なる場合があり、信頼できる解決策ではありません。

もう1つの方法はコードを変更することです。その場合、user.homeディレクトリからファイルを読み込んでそこにファイルを置きます。

関連する問題