1

私のアプリケーションでは、webcontent フォルダー内にファイルを書き込む必要がある関数があり、data というフォルダーがあり、実際のパス ( C:\Users\SanWin\workspace\ を指定した場合) を新しい名前で書き込む必要があります。 RoleAccessControl\data\ActivityLog.txt) ファイルを書き込みますが、プロジェクトを別のマシンで実行するときにこれを変更する必要があるため、これを使用して実際のパスを取得しました

ServletContext ctx = getServletContext();
        String path = ctx.getRealPath("/data/ActivityLog.txt");
        System.out.println(path);

印刷すると、コンソールに次のメッセージが表示されました

C:\Users\SanWin\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\RoleAccessControl\data\ActivityLog.txt

システムがこの行を取得する方法がわかりません

.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\

これは日食です。私は C:\Users\SanWin\workspace\RoleAccessControl\data\ActivityLog.txtのようなものを期待していました

行を取り除きたい実際のパスを取得する方法 (.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps)、インターネットで見たすべての可能性を調べて実行しましたが、失敗しました。申し訳ありません投稿が重複していた場合は、ご容赦ください。お時間をいただき、ご回答いただきありがとうございます。

4

1 に答える 1

2

Eclipse の [サーバー] ビューで、サーバーをダブルクリックして構成画面を開くと、別のデプロイ パスを設定できます (少なくとも Tomcat では)。その設定を変更できるのは、何もデプロイされていない場合のみです。それ以外の場合は、オプションがグレー表示されます。

ここに画像の説明を入力

.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\あなたが得ているのは、[ワークスペース メタデータを使用する] オプションがあるためです

とにかく、Eclipse を使用せずに手動で Tomcat webapps フォルダーに直接デプロイすると、正しいパスが得られます。

言い換えれば、あなたのコードは正しく、正しいパスを提供しています。アプリが展開されているパスが気に入らないだけです。

お役に立てれば。

于 2012-08-31T22:28:39.500 に答える