1

次のコードを使用して、単純な Java クラスを使用してファイルをダウンロードしようとしています。

public class Download {  

     public static void main(String[] args) throws Exception {  

        Download d = new Download();  
        d.URLSetUp("http://www.sheldonbrown.com/web_sample1.html");  
     }  

    public String URLSetUp(String urlProp) throws Exception {  

        StringBuffer tempData = new StringBuffer();  
        String contentXML = "";  
        String line = "";  
        URL url1;  
         try {  
            url1 = new URL(urlProp);  

            URLConnection conn = url1.openConnection();  

            conn.setDoOutput(true);  
             OutputStreamWriter wr = new OutputStreamWriter(conn
                .getOutputStream());  

             BufferedReader rd = new BufferedReader(new InputStreamReader(conn
                .getInputStream()));  
              while ((line = rd.readLine()) != null) {  
                 tempData.append(line);  
             }  
             contentXML = tempData.toString();  

            wr.close();  
            rd.close();  

         } catch (MalformedURLException e) {  

             e.printStackTrace();  
         } catch (IOException e) {  

             e.printStackTrace();  
        }  
         if (contentXML != null) {  
             return contentXML;  
        } else {  

             System.out.println("Error");  
         }  
         return null;  

     }  
}  

次のエラーが表示されます:

#  
# An unexpected error has been detected by Java Runtime Environment:  
#  
#  Internal Error (434C41535326494C453041525345520E4350500B65), pid=5156, tid=4296  
#  
# Java VM: Java HotSpot(TM) Client VM (1.6.0_03-b05 mixed mode)  
# An error report file with more information is saved as hs_err_pid5156.log  
#  
# If you would like to submit a bug report, please visit:  
#   http://java.sun.com/webapps/bugreport/crash.jsp  
#

心当たりのある方がいらっしゃいましたら教えてください。

ありがとう
_

4

2 に答える 2

2

おそらくあなたが判断したように、それは仮想マシンのクラッシュです。Java 内で通常行うことはこれをトリガーしないため、JVM をアップグレードすることから始めます。1.6.0_03はかなり古いです。

このページでは、Java 7 のダウンロードについて詳しく説明し、以前の Java 6 JDK についても説明します。ご覧のとおり、それらはマイナー バージョン 31 までであるため、比較的古くなっています。

これをさらにデバッグする場合は、上記のエラー レポート ファイルに注意して、この SO answerを確認してください。

于 2012-04-11T11:05:39.233 に答える
1

ソースファイルは正しいです、私はそれを試してみて、それは動作します。

エラーは1つだけですが、問題とは関係ありません。readLine()メソッドを使用しています。行を取得して追加するとtempData、行終了文字が失われるため、これを修正するか、ファイルを変更することを忘れないでください。

于 2012-04-11T11:12:48.153 に答える