簡體   English   中英

.JAR 可執行文件運行不正常

[英].JAR Executable file not running properly

我創建了一個 java 應用程序,它基本上從網站上抓取數據並創建一個 .csv 文件。 當我在 NetBeans 中執行它並創建 34kb 的文件時,它運行良好。 但是,當我構建它並運行 .JAR 可執行文件時,它會創建相同的文件,但文件的大小為 4kb,並沒有帶來所有數據。 我在 java 1.8 上構建項目。 我不明白這個問題實際上背后的原因是什么。 是java版本的問題嗎? 在此先感謝您的幫助。 很抱歉之前沒有在此處添加代碼。 這是我的項目的代碼。

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 文件。

ant -f C:\\Users\\talha\\Documents\\NetBeansProjects\\com.open_end_smry -Dnb.internal.action.name=rebuild clean jar init: deps-clean: 更新屬性文件: 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.properties 創建的目錄:C:\\Users\\talha\\Documents\\NetBeansProjects\\com.open_end_smry\\ build\\classes 創建的目錄:C:\\Users\\talha\\Documents\\NetBeansProjects\\com.open_end_smry\\build\\empty 創建的目錄:C:\\Users\\talha\\Documents\\NetBeansProjects\\com.open_end_smry\\build\\generated-sources\\ap- source-output 將 1 個源文件編譯到 C:\\Users\\talha\\Documents\\NetBeansProjects\\com.open_end_smry\\build\\classes 警告:[options] 引導類路徑未與 -sour 一起設置 ce 1.7 1 warning compile: Created dir: C:\\Users\\talha\\Documents\\NetBeansProjects\\com.open_end_smry\\dist Copying 1 file to C:\\Users\\talha\\Documents\\NetBeansProjects\\com.open_end_smry\\build Copy libraries to 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\\talha\\Documents \\NetBeansProjects\\com.open_end_smry\\dist\\com.open_end_smry.jar" jar:構建成功(總時間:0 秒)

您在循環中具有文件的刪除功能,因此該文件將在每個循環中刪除。 將這些部分放在循環之外:

   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));

            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM