- - PR -
コンパイルエラー⇒@IT > Java Solution > 基礎から学ぶサーブレット/JSP 第9回
1
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-06-07 13:21
java初心者です、@IT > Java Solution > 基礎から学ぶサーブレット/JSP 第9回
のfilelist.jspを練習してコンパイルしていますが、コンパイルエラーがでました。 変更箇所⇒File objFld=new File(application.getRealPath(".")); ⇒File objFld=new File(application.getRealPath"C:\\TEST\\MYTEST\\public_html\\")); ご教授お願いいたします。 ソース ------------------------------------------------------------------------------- <%@ page contentType="text/html; charset=Shift_JIS" import="java.io.*,java.util.*" %> <table border="1"> <tr> <th>ファイル名</th><th>サイズ(キロバイト)</th><th>最終更新日</th> </tr> <% File objFld=new File(application.getRealPath("C:\\TEST\\MYTEST\\public_html\\")); File[] aryFls=objFld.listFiles(); for(int i=0;i<aryFls.length;i++){ %> <tr> <td><%=aryFls[i].getName()%></td> <td align="right"> <% if(aryFls[i].isDirectory()){ out.print("<br />"); }else{ out.print(Math.ceil(aryFls[i].length()/1024+1) + "KB"); } %> </td> <td><%=(new Date(aryFls[i].lastModified())).toString() %></td> </tr> <% } %> </table> ------------------------------------------------------------------------------- 以下はコンパイルエラー ------------------------------------------------------------------------------- java.lang.NullPointerException at java.io.File.<init>(File.java:180) at _fileList._jspService(fileList.jsp: [/fileList.jsp] at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:139) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:721) at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306) at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767) at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:259) at com.evermind[Oracle9iAS (9.0.3.0.0) Containers for J2EE].server.http.HttpRequestHandler.run(HttpRequestHandler.java:106) at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803) at java.lang.Thread.run(Thread.java:534) | ||||||||
|
投稿日時: 2004-06-07 13:48
まず、これはコンパイルエラーではなく実行時エラーですね。 発生しているのがFileクラスの初期化部分なので、おそらく
ここでFileクラスのコンストラクタへの引数、つまりgetRealPathの戻り値がNULLになっている と思います。getRealPathは仮想パスに対するファイルシステム上の実際のパスを返すものなので、 引数に実際のパスを指定するのはおかしいです。パス指定が正しいとすれば、以下のようにすれば いいのではないですか? File objFld=new File("C:\TEST\MYTEST\public_html\"); | ||||||||
|
投稿日時: 2004-06-07 14:04
ありがとうございます、
File objFld=new File(application.getRealPath("C:\TEST\MYTEST\public_html\")); より実行エラーを解決致しました、ありがとうございます。 もう一つ聞きたいですが、getRealPathを使う仮想パースはどこで設定されていますでしょうか?参考資料でもありましたら、教えていただけば幸いですが、よろしくお願いいたします。 | ||||||||
1
