.JAR 可执行文件未 运行 正确

.JAR Executable file not running properly

我创建了一个 java 应用程序,它主要是从网站上抓取数据并创建一个 .csv 文件。当我在 NetBeans 中执行它并创建 34kb 的文件时,它 运行ning 很好。但是,当我构建它和 运行 .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();

    }

}

这里是构建项目后的log cat文件。

ant -f C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry -Dnb.internal.action.name=rebuild clean jar init: deps-clean: Updating property file: C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\build\built-clean.properties Deleting directory 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 Updating property file: C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\build\built-jar.properties Created dir: C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\build\classes Created dir: C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\build\empty Created dir: C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\build\generated-sources\ap-source-output Compiling 1 source file to C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\build\classes warning: [options] bootstrap class path not set in conjunction with -source 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. Building jar: C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\dist\com.open_end_smry.jar To run this application from the command line without Ant, try: java -jar "C:\Users\talha\Documents\NetBeansProjects\com.open_end_smry\dist\com.open_end_smry.jar" jar: BUILD SUCCESSFUL (total time: 0 seconds)

你的循环内有删除文件的功能,所以每次循环都会删除文件。将这些部分放在循环之外:

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

            }
        }
    }