2016-04-27 34 views
-1

Webアプリケーションから基本的にデータをスクラップして.csvファイルを作成するJavaアプリケーションを作成しました。 NetBeansで実行すると正常に動作し、34kbのファイルが作成されます。しかし、私がそれをビルドして.JAR実行可能ファイルを実行すると、同じファイルが作成されますが、ファイルのサイズは4kbであり、すべてのデータを持ちません。 私はJava 1.8でプロジェクトをビルドします。私はこの問題を実際に理解していないのです。それはJava版の問題ですか?あなたの助けを前にありがとう。 ここでコードを追加しないと申し訳ありません。ここに私のプロジェクトのコードがあります。.JAR実行可能ファイルが正しく実行されていません

import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 
import java.util.ArrayList; 
import java.util.Date; 
import java.util.Iterator; 
import java.util.Locale; 
import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

//this program is for open-end-summary 
/** 
* 
* @author talha 
*/ 
public class ComMufapScraping { 

    boolean writeCSVToConsole = true; 
    boolean writeCSVToFile = true; 
    boolean sortTheList = true; 
    boolean writeToConsole; 
    boolean writeToFile; 
    public static Document doc = null; 
    public static Elements tbodyElements = null; 
    public static Elements elements = null; 
    public static Elements tdElements = null; 
    public static Elements trElement2 = null; 
    public static String Dcomma = ","; 
    public static String line = ""; 
    public static ArrayList<Elements> sampleList = new ArrayList<Elements>(); 

    public static void createConnection() throws IOException { 
     System.setProperty("http.proxyHost", "191.1.1.202"); 
     System.setProperty("http.proxyPort", "8080"); 
     String tempUrl = "http://www.mufap.com.pk/nav_returns_performance.php?tab=01"; 
     doc = Jsoup.connect(tempUrl).get(); 
    } 

    public static void parsingHTML() throws Exception { 
     for (Element table : doc.getElementsByTag("table")) { 

      for (Element trElement : table.getElementsByTag("tr")) { 
       trElement2 = trElement.getElementsByTag("tr"); 
       tdElements = trElement.getElementsByTag("td"); 
       File fold = new File("C:\\open-end-smry.csv"); 
       fold.delete(); 
       File fnew = new File("C:\\open-end-smry.csv"); 
       FileWriter sb = new FileWriter(fnew, true); 
       if (trElement.hasClass("tab-data1")) { 
        for (Iterator<Element> it = tdElements.iterator(); it.hasNext();) { 
         if (it.hasNext()) { 
          sb.append("\r\n"); 

         } 

         for (Iterator<Element> it2 = trElement2.iterator(); it.hasNext();) { 
          Element tdElement2 = it.next(); 
          final String content = tdElement2.text(); 
          if (it2.hasNext()) { 

           sb.append(formatData(content)); 
           sb.append(" , "); 

          } 
          if (!it.hasNext()) { 
           String content1 = content.replaceAll(",$", " "); 
           sb.append(formatData(content1)); 
           //it2.next(); 

          } 
         } 

         System.out.println(sb.toString()); 
         sb.flush(); 
         sb.close(); 
        } 
       } 
       System.out.println(sampleList.add(tdElements)); 

      } 
     } 
    } 
    private static final SimpleDateFormat FORMATTER_MMM_d_yyyy = new SimpleDateFormat("MMM d, yyyy", Locale.US); 
    private static final SimpleDateFormat FORMATTER_dd_MMM_yyyy = new SimpleDateFormat("dd-MMM-YYYY", Locale.US); 

    public static String formatData(String text) { 
     String tmp = null; 

     try { 
      Date d = FORMATTER_MMM_d_yyyy.parse(text); 
      tmp = FORMATTER_dd_MMM_yyyy.format(d); 
     } catch (ParseException pe) { 
      tmp = text; 
     } 

     return tmp; 
    } 

    public static void main(String[] args) throws IOException, Exception { 
     createConnection(); 
     parsingHTML(); 

    } 

} 

ここにプロジェクトをビルドした後のログcatファイルがあります。

アリ-f C:\ Users \ユーザータルハガムドキュメント\ \ NetBeansProjects \ com.open_end_smry -Dnb.internal.action.name =クリーンジャーのinitを再構築:depsのクリーン:更新プロパティファイル: Cを: \ Users \ talha \ Documents \ NetBeansProjects \ com.open_end_smry \ build \ built-clean.properties ディレクトリの削除 C:¥Users¥talha¥Documents¥NetBeansProjects¥com.open_end_smry¥build clean:init:deps-jar:Created dir: C:¥Users¥talha¥Documents¥NetBeansProjects¥com.open_end_smry¥build プロパティファイルの更新: C:¥Users¥talha¥Documents¥NetBeansProjects¥com.open_end_smry¥build¥built-jar.prop erties ディレクトリを作成: C:\ユーザー\タルハガムドキュメント\ NetBeansProjects \ com.open_end_smry \ \クラスを構築\ 作成したディレクトリ: C:\ Users \ユーザータルハガムドキュメント\ \ NetBeansProjects \ com.open_end_smry \構築\空 作成されたディレクトリ: C:\ Users \ユーザータルハガム\ドキュメント\ NetBeansProjects \ com.open_end_smry \ Cに 1つのソースファイルをコンパイルAP-ソース出力\ \生成され、ソースをビルドする:\ Users \ユーザータルハガム\ドキュメント\ NetBeansProjects \ com.open_end_smry \ビルド\クラス 警告:[オプション]ブートストラップクラスのパスは と一緒に設定されていません - ソース1.7 1警告コンパイル:作成されたディレクトリ:C:¥Users¥talha¥Documents¥NetBeansProjects¥com.open_end_smry¥dist 1ファイルを にコピーしていますC:\ Users \ talha \ Documents \ Ne tBeansProjects \ com.open_end_smry \ build ライブラリを C:¥Users¥talha¥Documents¥NetBeansProjects¥com.open_end_smry¥dist¥libにコピーします。 ビルダーjar: C:¥Users¥talha¥Documents¥NetBeansProjects¥com.open_end_smry¥dist¥com.open_end_smry.jar このアプリケーションをAntなしでコマンドラインから実行するには、java -jar "C:\ Users \タルハガムの\ドキュメント\ NetBeansProjects \ com.open_end_smry \ distの\ com.open_end_smry.jar」に 瓶:SUCCESSFUL(合計時間:0秒)を構築

+0

プロジェクトをローカルマシンにコピーする必要があります。次にコンソール上で 'javac file.java'を実行してから' java File'を実行してください。 Javaを正しくインストールした場合、これはうまくいくはずです。 –

+1

すべてがコピーされて正しくコンパイルされていると仮定すると、何が間違っているのかを私たちが知る方法はありません。 –

+0

[mcve]を提供できる場合は、問題の再現を試みることができます。いくつかのコードがなければ、あなたを助けるのは難しい –

答えて

1

をあなたはそう、あなたのループ内のファイルの削除機能を持っていますファイルはすべてのループで削除されます。あなたのループの外にこれらの部分を入れてください:

public static void parsingHTML() throws Exception { 
     File fold = new File("C:\\open-end-smry.csv"); 
     fold.delete(); 
     for (Element table : doc.getElementsByTag("table")) { 

      for (Element trElement : table.getElementsByTag("tr")) { 
       trElement2 = trElement.getElementsByTag("tr"); 
       tdElements = trElement.getElementsByTag("td"); 
       File fnew = new File("C:\\open-end-smry.csv"); 
       FileWriter sb = new FileWriter(fnew, true); 
       if (trElement.hasClass("tab-data1")) { 
        for (Iterator<Element> it = tdElements.iterator(); it.hasNext();) { 
         if (it.hasNext()) { 
          sb.append("\r\n"); 

         } 

         for (Iterator<Element> it2 = trElement2.iterator(); it.hasNext();) { 
          Element tdElement2 = it.next(); 
          final String content = tdElement2.text(); 
          if (it2.hasNext()) { 

           sb.append(formatData(content)); 
           sb.append(" , "); 

          } 
          if (!it.hasNext()) { 
           String content1 = content.replaceAll(",$", " "); 
           sb.append(formatData(content1)); 
           //it2.next(); 

          } 
         } 

         System.out.println(sb.toString()); 
         sb.flush(); 
         sb.close(); 
        } 
       } 
       System.out.println(sampleList.add(tdElements)); 

      } 
     } 
    } 
関連する問題