Напрямую запускать исходный код в Eclipse - это нормально. Почему файл Jar прекратит работу и в консоли не отобразится исключение? - PullRequest
2 голосов
/ 05 октября 2019

Я очень старался найти ответ в Stackoverflow и Google. Я также пробовал много способов проверить свою программу, но не смог. Моя проблема заключается в следующем: я пытаюсь кодировать серверную программу на стороне ПК и общаться с клиентом на другом компьютере. Я могу запустить всю программу в Eclipse IDE и никаких проблем. Очень странно, я не могу запустить файл Jar на том же ПК.

Из-за отсутствия сообщения об ошибке, я думаю, процесс упаковки файла Jar, возможно, является ключевым моментом. Я пытаюсь проверить все возможные способы экспорта файла jar, а также изменить другой тип файла MENIFEST для проверки программы.

Ниже приведена программа:

package idv.xml.serverclient;

import java.awt.Color;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import javax.swing.SwingUtilities;
import javax.swing.text.BadLocationException;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.TransformerFactoryConfigurationError;

import org.jdom2.Document;
import org.jdom2.output.XMLOutputter;
//import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

public class Server1 extends Thread {

    private Socket mySocket;
    private ServerSocket myServer;
    private int intPort;
    private ReadFile readFile;
    private ReadData ReadData;
    private String isContinue = "0";
    WriteFile wftolog = new WriteFile();

    public Server1() {
        // 預設建構子
    }

    public Server1(int intPort) {
        // super();
        this.intPort = intPort;
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        super.run();
        while (true) {
            readFile = new ReadFile();

            try {
                myServer = new ServerSocket(intPort);
                System.out.println("Server started at port:" + intPort);
                // 等待Client的連接

                System.out.println("Waiting for Client Connet.....");
                wftolog.addLog("Waiting for Client Connet.....");
                // 設置監聽器等待client的連線
                mySocket = myServer.accept();

                SwingUtilities.invokeLater(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        try {
                            SimpleAttributeSet keyWord = new SimpleAttributeSet();
                            StyleConstants.setForeground(keyWord, Color.RED);
                            StyleConstants.setBackground(keyWord, Color.YELLOW);
                            StyleConstants.setBold(keyWord, true);
                            HMI_Window.doc.insertString(0, "工作中........\n", keyWord);

                        } catch (BadLocationException e1) {
                            // TODO Auto-generated catch block
                            e1.printStackTrace();
                        }
                    }

                });
            } catch (NullPointerException e) {
                e.getStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            System.out.println("Accept Client " + mySocket);
            System.out.println("------Connection Created--------");
            wftolog.addLog("連線成功, 工作中........");
            if (ReadFile.isPTP == 0) {
                System.out.println("進去讀LIN資料串");
                readBufferLIN();
                wftolog.addLog("傳輸LIN資料成功。");
            } else {
                //確認是否是最後一個檔案
                if (ReadFile.fileCounter == (idv.xml.serverclient.ReadData.fileNumber)) {
                    isContinue = "1";
                }
                System.out.println("進去讀PTP資料串");
                readBufferPTP();
                wftolog.addLog("傳輸PTP資料成功。");
                System.out.println("readFile.fileCounter="+(ReadFile.fileCounter-1)+";readData.fileNumber="+(idv.xml.serverclient.ReadData.fileNumber - 1));
                if (ReadFile.fileCounter == (idv.xml.serverclient.ReadData.fileNumber)) {
                    break;
                }
            }
            // 完成連線
            System.out.println("success");
            wftolog.addLog("完成資料傳輸");
        }
    }

    public void readBufferPTP() {

        // ----------- XML傳送資料 (JDOM)-----------
        try {
            // 生成Document物件
            Document docJDOM = new Document();
            XMLOutputter XMLOut = new XMLOutputter();
            // 生成XML字符串,即XML文件的内容,包含很多换行符
            String xmlString = XMLOut.outputString(docJDOM);
            xmlString = "<Sensor>"+ "\n"
                    +   "<Message>Example message</Message>"+ "\n"
                    +   "<Positions>"+ "\n"
                    + "<Current A1=\"" + readFile.A1[0] + "\"" + " " 
                    + "A2=\"" + readFile.A2[0] + "\"" + " " 
                    + "A3=\"" + readFile.A3[0] + "\"" + " " 
                    + "A4=\"" + readFile.A4[0] + "\"" + " " 
                    + "A5=\"" + readFile.A5[0] + "\"" + " " 
                    + "A6=\"" + readFile.A6[0] + "\"" + " " 
                    + "E1=\"" + readFile.E1[0] + "\"" + " "
                    + "E2=\"" + readFile.E2[0] + "\"" + " " 
                    + "E3=\"" + readFile.E3[0] + "\"" + " " 
                    + "E4=\"" + readFile.E4[0] + "\"" + " " 
                    + "E5=\"" + readFile.E5[0] + "\"" + " " 
                    + "E6=\"" + readFile.E6[0]+ "\""  + "/>" + "\n"
                    +   "<Before>"+ "\n"
                    +   "<X>0.9842</X>"+ "\n"
                    +   "</Before>"+ "\n"
                    +   "</Positions>"+ "\n"
                    +   "<Nmb>" + String.valueOf(readFile.lineNumber) + "</Nmb>" + "\n"
                    +   "<Status>"+ "\n"
                    +   "<IsActive>1</IsActive>"+ "\n"
                    +   "</Status>"+ "\n"
                    +   "<Read>"+ "\n"
                    +   "<xyzabc1 X=\""+ReadData.x[0]+"\" Y=\""+ReadData.y[0]+"\" Z=\""+ReadData.z[0]+"\" A=\""+ReadData.a[0]+"\" B=\""+ReadData.b[0]+"\" C=\""+ReadData.c[0]+"\"/>"+ "\n"
                    +   "<xyzabc2 X=\""+ReadData.x[1]+"\" Y=\""+ReadData.y[1]+"\" Z=\""+ReadData.z[1]+"\" A=\""+ReadData.a[1]+"\" B=\""+ReadData.b[1]+"\" C=\""+ReadData.c[1]+"\"/>"+ "\n"
                    +   "<xyzabc3 X=\""+ReadData.x[2]+"\" Y=\""+ReadData.y[2]+"\" Z=\""+ReadData.z[2]+"\" A=\""+ReadData.a[2]+"\" B=\""+ReadData.b[2]+"\" C=\""+ReadData.c[2]+"\"/>"+ "\n"
                    +   "<xyzabc4 X=\""+ReadData.x[3]+"\" Y=\""+ReadData.y[3]+"\" Z=\""+ReadData.z[3]+"\" A=\""+ReadData.a[3]+"\" B=\""+ReadData.b[3]+"\" C=\""+ReadData.c[3]+"\"/>"+ "\n"
                    +   "<xyzabc5 X=\""+ReadData.x[4]+"\" Y=\""+ReadData.y[4]+"\" Z=\""+ReadData.z[4]+"\" A=\""+ReadData.a[4]+"\" B=\""+ReadData.b[4]+"\" C=\""+ReadData.c[4]+"\"/>"+ "\n"
                    +   "<xyzabc6 X=\""+ReadData.x[5]+"\" Y=\""+ReadData.y[5]+"\" Z=\""+ReadData.z[5]+"\" A=\""+ReadData.a[5]+"\" B=\""+ReadData.b[5]+"\" C=\""+ReadData.c[5]+"\"/>"+ "\n"
                    +   "<xyzabc7 X=\""+ReadData.x[6]+"\" Y=\""+ReadData.y[6]+"\" Z=\""+ReadData.z[6]+"\" A=\""+ReadData.a[6]+"\" B=\""+ReadData.b[6]+"\" C=\""+ReadData.c[6]+"\"/>"+ "\n"
                    +   "<xyzabc8 X=\""+ReadData.x[7]+"\" Y=\""+ReadData.y[7]+"\" Z=\""+ReadData.z[7]+"\" A=\""+ReadData.a[7]+"\" B=\""+ReadData.b[7]+"\" C=\""+ReadData.c[7]+"\"/>"+ "\n"
                    +   "<xyzabc9 X=\""+ReadData.x[8]+"\" Y=\""+ReadData.y[8]+"\" Z=\""+ReadData.z[8]+"\" A=\""+ReadData.a[8]+"\" B=\""+ReadData.b[8]+"\" C=\""+ReadData.c[8]+"\"/>"+ "\n"
                    +   "<xyzabc10 X=\""+ReadData.x[9]+"\" Y=\""+ReadData.y[9]+"\" Z=\""+ReadData.z[9]+"\" A=\""+ReadData.a[9]+"\" B=\""+ReadData.b[9]+"\" C=\""+ReadData.c[9]+"\"/>"+ "\n"
                    +   "<xyzabc11 X=\""+ReadData.x[10]+"\" Y=\""+ReadData.y[10]+"\" Z=\""+ReadData.z[10]+"\" A=\""+ReadData.a[10]+"\" B=\""+ReadData.b[10]+"\" C=\""+ReadData.c[10]+"\"/>"+ "\n"
                    +   "<xyzabc12 X=\""+ReadData.x[11]+"\" Y=\""+ReadData.y[11]+"\" Z=\""+ReadData.z[11]+"\" A=\""+ReadData.a[11]+"\" B=\""+ReadData.b[11]+"\" C=\""+ReadData.c[11]+"\"/>"+ "\n"
                    +   "<xyzabc13 X=\""+ReadData.x[12]+"\" Y=\""+ReadData.y[12]+"\" Z=\""+ReadData.z[12]+"\" A=\""+ReadData.a[12]+"\" B=\""+ReadData.b[12]+"\" C=\""+ReadData.c[12]+"\"/>"+ "\n"
                    +   "<xyzabc14 X=\""+ReadData.x[13]+"\" Y=\""+ReadData.y[13]+"\" Z=\""+ReadData.z[13]+"\" A=\""+ReadData.a[13]+"\" B=\""+ReadData.b[13]+"\" C=\""+ReadData.c[13]+"\"/>"+ "\n"
                    +   "<xyzabc15 X=\""+ReadData.x[14]+"\" Y=\""+ReadData.y[14]+"\" Z=\""+ReadData.z[14]+"\" A=\""+ReadData.a[14]+"\" B=\""+ReadData.b[14]+"\" C=\""+ReadData.c[14]+"\"/>"+ "\n"
                    +   "<xyzabc16 X=\""+ReadData.x[15]+"\" Y=\""+ReadData.y[15]+"\" Z=\""+ReadData.z[15]+"\" A=\""+ReadData.a[15]+"\" B=\""+ReadData.b[15]+"\" C=\""+ReadData.c[15]+"\"/>"+ "\n"
                    +   "<xyzabc17 X=\""+ReadData.x[16]+"\" Y=\""+ReadData.y[16]+"\" Z=\""+ReadData.z[16]+"\" A=\""+ReadData.a[16]+"\" B=\""+ReadData.b[16]+"\" C=\""+ReadData.c[16]+"\"/>"+ "\n"
                    +   "<xyzabc18 X=\""+ReadData.x[17]+"\" Y=\""+ReadData.y[17]+"\" Z=\""+ReadData.z[17]+"\" A=\""+ReadData.a[17]+"\" B=\""+ReadData.b[17]+"\" C=\""+ReadData.c[17]+"\"/>"+ "\n"
                    +   "<xyzabc19 X=\""+ReadData.x[18]+"\" Y=\""+ReadData.y[18]+"\" Z=\""+ReadData.z[18]+"\" A=\""+ReadData.a[18]+"\" B=\""+ReadData.b[18]+"\" C=\""+ReadData.c[18]+"\"/>"+ "\n"
                    +   "<xyzabc20 X=\""+ReadData.x[19]+"\" Y=\""+ReadData.y[19]+"\" Z=\""+ReadData.z[19]+"\" A=\""+ReadData.a[19]+"\" B=\""+ReadData.b[19]+"\" C=\""+ReadData.c[19]+"\"/>"+ "\n"
                    +   "<xyzabc21 X=\""+ReadData.x[20]+"\" Y=\""+ReadData.y[20]+"\" Z=\""+ReadData.z[20]+"\" A=\""+ReadData.a[20]+"\" B=\""+ReadData.b[20]+"\" C=\""+ReadData.c[20]+"\"/>"+ "\n"
                    +   "<xyzabc22 X=\""+ReadData.x[21]+"\" Y=\""+ReadData.y[21]+"\" Z=\""+ReadData.z[21]+"\" A=\""+ReadData.a[21]+"\" B=\""+ReadData.b[21]+"\" C=\""+ReadData.c[21]+"\"/>"+ "\n"
                    +   "<xyzabc23 X=\""+ReadData.x[22]+"\" Y=\""+ReadData.y[22]+"\" Z=\""+ReadData.z[22]+"\" A=\""+ReadData.a[22]+"\" B=\""+ReadData.b[22]+"\" C=\""+ReadData.c[22]+"\"/>"+ "\n"
                    +   "<xyzabc24 X=\""+ReadData.x[23]+"\" Y=\""+ReadData.y[23]+"\" Z=\""+ReadData.z[23]+"\" A=\""+ReadData.a[23]+"\" B=\""+ReadData.b[23]+"\" C=\""+ReadData.c[23]+"\"/>"+ "\n"
                    +   "<xyzabc25 X=\""+ReadData.x[24]+"\" Y=\""+ReadData.y[24]+"\" Z=\""+ReadData.z[24]+"\" A=\""+ReadData.a[24]+"\" B=\""+ReadData.b[24]+"\" C=\""+ReadData.c[24]+"\"/>"+ "\n"
                    +   "<xyzabc26 X=\""+ReadData.x[25]+"\" Y=\""+ReadData.y[25]+"\" Z=\""+ReadData.z[25]+"\" A=\""+ReadData.a[25]+"\" B=\""+ReadData.b[25]+"\" C=\""+ReadData.c[25]+"\"/>"+ "\n"
                    +   "<xyzabc27 X=\""+ReadData.x[26]+"\" Y=\""+ReadData.y[26]+"\" Z=\""+ReadData.z[26]+"\" A=\""+ReadData.a[26]+"\" B=\""+ReadData.b[26]+"\" C=\""+ReadData.c[26]+"\"/>"+ "\n"
                    +   "<xyzabc28 X=\""+ReadData.x[27]+"\" Y=\""+ReadData.y[27]+"\" Z=\""+ReadData.z[27]+"\" A=\""+ReadData.a[27]+"\" B=\""+ReadData.b[27]+"\" C=\""+ReadData.c[27]+"\"/>"+ "\n"
                    +   "<xyzabc29 X=\""+ReadData.x[28]+"\" Y=\""+ReadData.y[28]+"\" Z=\""+ReadData.z[28]+"\" A=\""+ReadData.a[28]+"\" B=\""+ReadData.b[28]+"\" C=\""+ReadData.c[28]+"\"/>"+ "\n"
                    +   "<xyzabc30 X=\""+ReadData.x[29]+"\" Y=\""+ReadData.y[29]+"\" Z=\""+ReadData.z[29]+"\" A=\""+ReadData.a[29]+"\" B=\""+ReadData.b[29]+"\" C=\""+ReadData.c[29]+"\"/>"+ "\n"
                    +   "<xyzabc31 X=\""+ReadData.x[30]+"\" Y=\""+ReadData.y[30]+"\" Z=\""+ReadData.z[30]+"\" A=\""+ReadData.a[30]+"\" B=\""+ReadData.b[30]+"\" C=\""+ReadData.c[30]+"\"/>"+ "\n"
                    +   "<xyzabc32 X=\""+ReadData.x[31]+"\" Y=\""+ReadData.y[31]+"\" Z=\""+ReadData.z[31]+"\" A=\""+ReadData.a[31]+"\" B=\""+ReadData.b[31]+"\" C=\""+ReadData.c[31]+"\"/>"+ "\n"
                    +   "<xyzabc33 X=\""+ReadData.x[32]+"\" Y=\""+ReadData.y[32]+"\" Z=\""+ReadData.z[32]+"\" A=\""+ReadData.a[32]+"\" B=\""+ReadData.b[32]+"\" C=\""+ReadData.c[32]+"\"/>"+ "\n"
                    +   "<xyzabc34 X=\""+ReadData.x[33]+"\" Y=\""+ReadData.y[33]+"\" Z=\""+ReadData.z[33]+"\" A=\""+ReadData.a[33]+"\" B=\""+ReadData.b[33]+"\" C=\""+ReadData.c[33]+"\"/>"+ "\n"
                    +   "<xyzabc35 X=\""+ReadData.x[34]+"\" Y=\""+ReadData.y[34]+"\" Z=\""+ReadData.z[34]+"\" A=\""+ReadData.a[34]+"\" B=\""+ReadData.b[34]+"\" C=\""+ReadData.c[34]+"\"/>"+ "\n"
                    +   "<xyzabc36 X=\""+ReadData.x[35]+"\" Y=\""+ReadData.y[35]+"\" Z=\""+ReadData.z[35]+"\" A=\""+ReadData.a[35]+"\" B=\""+ReadData.b[35]+"\" C=\""+ReadData.c[35]+"\"/>"+ "\n"
                    +   "<xyzabc37 X=\""+ReadData.x[36]+"\" Y=\""+ReadData.y[36]+"\" Z=\""+ReadData.z[36]+"\" A=\""+ReadData.a[36]+"\" B=\""+ReadData.b[36]+"\" C=\""+ReadData.c[36]+"\"/>"+ "\n"
                    +   "<xyzabc38 X=\""+ReadData.x[37]+"\" Y=\""+ReadData.y[37]+"\" Z=\""+ReadData.z[37]+"\" A=\""+ReadData.a[37]+"\" B=\""+ReadData.b[37]+"\" C=\""+ReadData.c[37]+"\"/>"+ "\n"
                    +   "<xyzabc39 X=\""+ReadData.x[38]+"\" Y=\""+ReadData.y[38]+"\" Z=\""+ReadData.z[38]+"\" A=\""+ReadData.a[38]+"\" B=\""+ReadData.b[38]+"\" C=\""+ReadData.c[38]+"\"/>"+ "\n"
                    +   "<xyzabc40 X=\""+ReadData.x[39]+"\" Y=\""+ReadData.y[39]+"\" Z=\""+ReadData.z[39]+"\" A=\""+ReadData.a[39]+"\" B=\""+ReadData.b[39]+"\" C=\""+ReadData.c[39]+"\"/>"+ "\n"
                    +   "<xyzabc41 X=\""+ReadData.x[40]+"\" Y=\""+ReadData.y[40]+"\" Z=\""+ReadData.z[40]+"\" A=\""+ReadData.a[40]+"\" B=\""+ReadData.b[40]+"\" C=\""+ReadData.c[40]+"\"/>"+ "\n"
                    +   "<xyzabc42 X=\""+ReadData.x[41]+"\" Y=\""+ReadData.y[41]+"\" Z=\""+ReadData.z[41]+"\" A=\""+ReadData.a[41]+"\" B=\""+ReadData.b[41]+"\" C=\""+ReadData.c[41]+"\"/>"+ "\n"
                    +   "<xyzabc43 X=\""+ReadData.x[42]+"\" Y=\""+ReadData.y[42]+"\" Z=\""+ReadData.z[42]+"\" A=\""+ReadData.a[42]+"\" B=\""+ReadData.b[42]+"\" C=\""+ReadData.c[42]+"\"/>"+ "\n"
                    +   "<xyzabc44 X=\""+ReadData.x[43]+"\" Y=\""+ReadData.y[43]+"\" Z=\""+ReadData.z[43]+"\" A=\""+ReadData.a[43]+"\" B=\""+ReadData.b[43]+"\" C=\""+ReadData.c[43]+"\"/>"+ "\n"
                    +   "<xyzabc45 X=\""+ReadData.x[44]+"\" Y=\""+ReadData.y[44]+"\" Z=\""+ReadData.z[44]+"\" A=\""+ReadData.a[44]+"\" B=\""+ReadData.b[44]+"\" C=\""+ReadData.c[44]+"\"/>"+ "\n"
                    +   "<xyzabc46 X=\""+ReadData.x[45]+"\" Y=\""+ReadData.y[45]+"\" Z=\""+ReadData.z[45]+"\" A=\""+ReadData.a[45]+"\" B=\""+ReadData.b[45]+"\" C=\""+ReadData.c[45]+"\"/>"+ "\n"
                    +   "<xyzabc47 X=\""+ReadData.x[46]+"\" Y=\""+ReadData.y[46]+"\" Z=\""+ReadData.z[46]+"\" A=\""+ReadData.a[46]+"\" B=\""+ReadData.b[46]+"\" C=\""+ReadData.c[46]+"\"/>"+ "\n"
                    +   "<xyzabc48 X=\""+ReadData.x[47]+"\" Y=\""+ReadData.y[47]+"\" Z=\""+ReadData.z[47]+"\" A=\""+ReadData.a[47]+"\" B=\""+ReadData.b[47]+"\" C=\""+ReadData.c[47]+"\"/>"+ "\n"
                    +   "<xyzabc49 X=\""+ReadData.x[48]+"\" Y=\""+ReadData.y[48]+"\" Z=\""+ReadData.z[48]+"\" A=\""+ReadData.a[48]+"\" B=\""+ReadData.b[48]+"\" C=\""+ReadData.c[48]+"\"/>"+ "\n"
                    +   "<xyzabc50 X=\""+ReadData.x[49]+"\" Y=\""+ReadData.y[49]+"\" Z=\""+ReadData.z[49]+"\" A=\""+ReadData.a[49]+"\" B=\""+ReadData.b[49]+"\" C=\""+ReadData.c[49]+"\"/>"+ "\n"
                    +   "<xyzabc51 X=\""+ReadData.x[50]+"\" Y=\""+ReadData.y[50]+"\" Z=\""+ReadData.z[50]+"\" A=\""+ReadData.a[50]+"\" B=\""+ReadData.b[50]+"\" C=\""+ReadData.c[50]+"\"/>"+ "\n"
                    +   "<xyzabc52 X=\""+ReadData.x[51]+"\" Y=\""+ReadData.y[51]+"\" Z=\""+ReadData.z[51]+"\" A=\""+ReadData.a[51]+"\" B=\""+ReadData.b[51]+"\" C=\""+ReadData.c[51]+"\"/>"+ "\n"
                    +   "<xyzabc53 X=\""+ReadData.x[52]+"\" Y=\""+ReadData.y[52]+"\" Z=\""+ReadData.z[52]+"\" A=\""+ReadData.a[52]+"\" B=\""+ReadData.b[52]+"\" C=\""+ReadData.c[52]+"\"/>"+ "\n"
                    +   "<xyzabc54 X=\""+ReadData.x[53]+"\" Y=\""+ReadData.y[53]+"\" Z=\""+ReadData.z[53]+"\" A=\""+ReadData.a[53]+"\" B=\""+ReadData.b[53]+"\" C=\""+ReadData.c[53]+"\"/>"+ "\n"
                    +   "<xyzabc55 X=\""+ReadData.x[54]+"\" Y=\""+ReadData.y[54]+"\" Z=\""+ReadData.z[54]+"\" A=\""+ReadData.a[54]+"\" B=\""+ReadData.b[54]+"\" C=\""+ReadData.c[54]+"\"/>"+ "\n"
                    +   "<xyzabc56 X=\""+ReadData.x[55]+"\" Y=\""+ReadData.y[55]+"\" Z=\""+ReadData.z[55]+"\" A=\""+ReadData.a[55]+"\" B=\""+ReadData.b[55]+"\" C=\""+ReadData.c[55]+"\"/>"+ "\n"
                    +   "<xyzabc57 X=\""+ReadData.x[56]+"\" Y=\""+ReadData.y[56]+"\" Z=\""+ReadData.z[56]+"\" A=\""+ReadData.a[56]+"\" B=\""+ReadData.b[56]+"\" C=\""+ReadData.c[56]+"\"/>"+ "\n"
                    +   "<xyzabc58 X=\""+ReadData.x[57]+"\" Y=\""+ReadData.y[57]+"\" Z=\""+ReadData.z[57]+"\" A=\""+ReadData.a[57]+"\" B=\""+ReadData.b[57]+"\" C=\""+ReadData.c[57]+"\"/>"+ "\n"
                    +   "<xyzabc59 X=\""+ReadData.x[58]+"\" Y=\""+ReadData.y[58]+"\" Z=\""+ReadData.z[58]+"\" A=\""+ReadData.a[58]+"\" B=\""+ReadData.b[58]+"\" C=\""+ReadData.c[58]+"\"/>"+ "\n"
                    +   "<xyzabc60 X=\""+ReadData.x[59]+"\" Y=\""+ReadData.y[59]+"\" Z=\""+ReadData.z[59]+"\" A=\""+ReadData.a[59]+"\" B=\""+ReadData.b[59]+"\" C=\""+ReadData.c[59]+"\"/>"+ "\n"
                    +   "<xyzabc61 X=\""+ReadData.x[60]+"\" Y=\""+ReadData.y[60]+"\" Z=\""+ReadData.z[60]+"\" A=\""+ReadData.a[60]+"\" B=\""+ReadData.b[60]+"\" C=\""+ReadData.c[60]+"\"/>"+ "\n"
                    +   "<xyzabc62 X=\""+ReadData.x[61]+"\" Y=\""+ReadData.y[61]+"\" Z=\""+ReadData.z[61]+"\" A=\""+ReadData.a[61]+"\" B=\""+ReadData.b[61]+"\" C=\""+ReadData.c[61]+"\"/>"+ "\n"
                    +   "<xyzabc63 X=\""+ReadData.x[62]+"\" Y=\""+ReadData.y[62]+"\" Z=\""+ReadData.z[62]+"\" A=\""+ReadData.a[62]+"\" B=\""+ReadData.b[62]+"\" C=\""+ReadData.c[62]+"\"/>"+ "\n"
                    +   "<xyzabc64 X=\""+ReadData.x[63]+"\" Y=\""+ReadData.y[63]+"\" Z=\""+ReadData.z[63]+"\" A=\""+ReadData.a[63]+"\" B=\""+ReadData.b[63]+"\" C=\""+ReadData.c[63]+"\"/>"+ "\n"
                    +   "<xyzabc65 X=\""+ReadData.x[64]+"\" Y=\""+ReadData.y[64]+"\" Z=\""+ReadData.z[64]+"\" A=\""+ReadData.a[64]+"\" B=\""+ReadData.b[64]+"\" C=\""+ReadData.c[64]+"\"/>"+ "\n"
                    +   "<xyzabc66 X=\""+ReadData.x[65]+"\" Y=\""+ReadData.y[65]+"\" Z=\""+ReadData.z[65]+"\" A=\""+ReadData.a[65]+"\" B=\""+ReadData.b[65]+"\" C=\""+ReadData.c[65]+"\"/>"+ "\n"
                    +   "<xyzabc67 X=\""+ReadData.x[66]+"\" Y=\""+ReadData.y[66]+"\" Z=\""+ReadData.z[66]+"\" A=\""+ReadData.a[66]+"\" B=\""+ReadData.b[66]+"\" C=\""+ReadData.c[66]+"\"/>"+ "\n"
                    +   "<xyzabc68 X=\""+ReadData.x[67]+"\" Y=\""+ReadData.y[67]+"\" Z=\""+ReadData.z[67]+"\" A=\""+ReadData.a[67]+"\" B=\""+ReadData.b[67]+"\" C=\""+ReadData.c[67]+"\"/>"+ "\n"
                    +   "<xyzabc69 X=\""+ReadData.x[68]+"\" Y=\""+ReadData.y[68]+"\" Z=\""+ReadData.z[68]+"\" A=\""+ReadData.a[68]+"\" B=\""+ReadData.b[68]+"\" C=\""+ReadData.c[68]+"\"/>"+ "\n"
                    +   "<xyzabc70 X=\""+ReadData.x[69]+"\" Y=\""+ReadData.y[69]+"\" Z=\""+ReadData.z[69]+"\" A=\""+ReadData.a[69]+"\" B=\""+ReadData.b[69]+"\" C=\""+ReadData.c[69]+"\"/>"+ "\n"
                    +   "<xyzabc71 X=\""+ReadData.x[70]+"\" Y=\""+ReadData.y[70]+"\" Z=\""+ReadData.z[70]+"\" A=\""+ReadData.a[70]+"\" B=\""+ReadData.b[70]+"\" C=\""+ReadData.c[70]+"\"/>"+ "\n"
                    +   "<xyzabc72 X=\""+ReadData.x[71]+"\" Y=\""+ReadData.y[71]+"\" Z=\""+ReadData.z[71]+"\" A=\""+ReadData.a[71]+"\" B=\""+ReadData.b[71]+"\" C=\""+ReadData.c[71]+"\"/>"+ "\n"
                    +   "<xyzabc73 X=\""+ReadData.x[72]+"\" Y=\""+ReadData.y[72]+"\" Z=\""+ReadData.z[72]+"\" A=\""+ReadData.a[72]+"\" B=\""+ReadData.b[72]+"\" C=\""+ReadData.c[72]+"\"/>"+ "\n"
                    +   "<xyzabc74 X=\""+ReadData.x[73]+"\" Y=\""+ReadData.y[73]+"\" Z=\""+ReadData.z[73]+"\" A=\""+ReadData.a[73]+"\" B=\""+ReadData.b[73]+"\" C=\""+ReadData.c[73]+"\"/>"+ "\n"
                    +   "<xyzabc75 X=\""+ReadData.x[74]+"\" Y=\""+ReadData.y[74]+"\" Z=\""+ReadData.z[74]+"\" A=\""+ReadData.a[74]+"\" B=\""+ReadData.b[74]+"\" C=\""+ReadData.c[74]+"\"/>"+ "\n"
                    +   "<xyzabc76 X=\""+ReadData.x[75]+"\" Y=\""+ReadData.y[75]+"\" Z=\""+ReadData.z[75]+"\" A=\""+ReadData.a[75]+"\" B=\""+ReadData.b[75]+"\" C=\""+ReadData.c[75]+"\"/>"+ "\n"
                    +   "<xyzabc77 X=\""+ReadData.x[76]+"\" Y=\""+ReadData.y[76]+"\" Z=\""+ReadData.z[76]+"\" A=\""+ReadData.a[76]+"\" B=\""+ReadData.b[76]+"\" C=\""+ReadData.c[76]+"\"/>"+ "\n"
                    +   "<xyzabc78 X=\""+ReadData.x[77]+"\" Y=\""+ReadData.y[77]+"\" Z=\""+ReadData.z[77]+"\" A=\""+ReadData.a[77]+"\" B=\""+ReadData.b[77]+"\" C=\""+ReadData.c[77]+"\"/>"+ "\n"
                    +   "<xyzabc79 X=\""+ReadData.x[78]+"\" Y=\""+ReadData.y[78]+"\" Z=\""+ReadData.z[78]+"\" A=\""+ReadData.a[78]+"\" B=\""+ReadData.b[78]+"\" C=\""+ReadData.c[78]+"\"/>"+ "\n"
                    +   "<xyzabc80 X=\""+ReadData.x[79]+"\" Y=\""+ReadData.y[79]+"\" Z=\""+ReadData.z[79]+"\" A=\""+ReadData.a[79]+"\" B=\""+ReadData.b[79]+"\" C=\""+ReadData.c[79]+"\"/>"+ "\n"
                    +   "<xyzabc81 X=\""+ReadData.x[80]+"\" Y=\""+ReadData.y[80]+"\" Z=\""+ReadData.z[80]+"\" A=\""+ReadData.a[80]+"\" B=\""+ReadData.b[80]+"\" C=\""+ReadData.c[80]+"\"/>"+ "\n"
                    +   "<xyzabc82 X=\""+ReadData.x[81]+"\" Y=\""+ReadData.y[81]+"\" Z=\""+ReadData.z[81]+"\" A=\""+ReadData.a[81]+"\" B=\""+ReadData.b[81]+"\" C=\""+ReadData.c[81]+"\"/>"+ "\n"
                    +   "<xyzabc83 X=\""+ReadData.x[82]+"\" Y=\""+ReadData.y[82]+"\" Z=\""+ReadData.z[82]+"\" A=\""+ReadData.a[82]+"\" B=\""+ReadData.b[82]+"\" C=\""+ReadData.c[82]+"\"/>"+ "\n"
                    +   "<xyzabc84 X=\""+ReadData.x[83]+"\" Y=\""+ReadData.y[83]+"\" Z=\""+ReadData.z[83]+"\" A=\""+ReadData.a[83]+"\" B=\""+ReadData.b[83]+"\" C=\""+ReadData.c[83]+"\"/>"+ "\n"
                    +   "<xyzabc85 X=\""+ReadData.x[84]+"\" Y=\""+ReadData.y[84]+"\" Z=\""+ReadData.z[84]+"\" A=\""+ReadData.a[84]+"\" B=\""+ReadData.b[84]+"\" C=\""+ReadData.c[84]+"\"/>"+ "\n"
                    +   "<xyzabc86 X=\""+ReadData.x[85]+"\" Y=\""+ReadData.y[85]+"\" Z=\""+ReadData.z[85]+"\" A=\""+ReadData.a[85]+"\" B=\""+ReadData.b[85]+"\" C=\""+ReadData.c[85]+"\"/>"+ "\n"
                    +   "<xyzabc87 X=\""+ReadData.x[86]+"\" Y=\""+ReadData.y[86]+"\" Z=\""+ReadData.z[86]+"\" A=\""+ReadData.a[86]+"\" B=\""+ReadData.b[86]+"\" C=\""+ReadData.c[86]+"\"/>"+ "\n"
                    +   "<xyzabc88 X=\""+ReadData.x[87]+"\" Y=\""+ReadData.y[87]+"\" Z=\""+ReadData.z[87]+"\" A=\""+ReadData.a[87]+"\" B=\""+ReadData.b[87]+"\" C=\""+ReadData.c[87]+"\"/>"+ "\n"
                    +   "<xyzabc89 X=\""+ReadData.x[88]+"\" Y=\""+ReadData.y[88]+"\" Z=\""+ReadData.z[88]+"\" A=\""+ReadData.a[88]+"\" B=\""+ReadData.b[88]+"\" C=\""+ReadData.c[88]+"\"/>"+ "\n"
                    +   "<xyzabc90 X=\""+ReadData.x[89]+"\" Y=\""+ReadData.y[89]+"\" Z=\""+ReadData.z[89]+"\" A=\""+ReadData.a[89]+"\" B=\""+ReadData.b[89]+"\" C=\""+ReadData.c[89]+"\"/>"+ "\n"
                    +   "<xyzabc91 X=\""+ReadData.x[90]+"\" Y=\""+ReadData.y[90]+"\" Z=\""+ReadData.z[90]+"\" A=\""+ReadData.a[90]+"\" B=\""+ReadData.b[90]+"\" C=\""+ReadData.c[90]+"\"/>"+ "\n"
                    +   "<xyzabc92 X=\""+ReadData.x[91]+"\" Y=\""+ReadData.y[91]+"\" Z=\""+ReadData.z[91]+"\" A=\""+ReadData.a[91]+"\" B=\""+ReadData.b[91]+"\" C=\""+ReadData.c[91]+"\"/>"+ "\n"
                    +   "<xyzabc93 X=\""+ReadData.x[92]+"\" Y=\""+ReadData.y[92]+"\" Z=\""+ReadData.z[92]+"\" A=\""+ReadData.a[92]+"\" B=\""+ReadData.b[92]+"\" C=\""+ReadData.c[92]+"\"/>"+ "\n"
                    +   "<xyzabc94 X=\""+ReadData.x[93]+"\" Y=\""+ReadData.y[93]+"\" Z=\""+ReadData.z[93]+"\" A=\""+ReadData.a[93]+"\" B=\""+ReadData.b[93]+"\" C=\""+ReadData.c[93]+"\"/>"+ "\n"
                    +   "<xyzabc95 X=\""+ReadData.x[94]+"\" Y=\""+ReadData.y[94]+"\" Z=\""+ReadData.z[94]+"\" A=\""+ReadData.a[94]+"\" B=\""+ReadData.b[94]+"\" C=\""+ReadData.c[94]+"\"/>"+ "\n"
                    +   "<xyzabc96 X=\""+ReadData.x[95]+"\" Y=\""+ReadData.y[95]+"\" Z=\""+ReadData.z[95]+"\" A=\""+ReadData.a[95]+"\" B=\""+ReadData.b[95]+"\" C=\""+ReadData.c[95]+"\"/>"+ "\n"
                    +   "<xyzabc97 X=\""+ReadData.x[96]+"\" Y=\""+ReadData.y[96]+"\" Z=\""+ReadData.z[96]+"\" A=\""+ReadData.a[96]+"\" B=\""+ReadData.b[96]+"\" C=\""+ReadData.c[96]+"\"/>"+ "\n"
                    +   "<xyzabc98 X=\""+ReadData.x[97]+"\" Y=\""+ReadData.y[97]+"\" Z=\""+ReadData.z[97]+"\" A=\""+ReadData.a[97]+"\" B=\""+ReadData.b[97]+"\" C=\""+ReadData.c[97]+"\"/>"+ "\n"
                    +   "<xyzabc99 X=\""+ReadData.x[98]+"\" Y=\""+ReadData.y[98]+"\" Z=\""+ReadData.z[98]+"\" A=\""+ReadData.a[98]+"\" B=\""+ReadData.b[98]+"\" C=\""+ReadData.c[98]+"\"/>"+ "\n"
                    +   "<xyzabc100 X=\""+ReadData.x[99]+"\" Y=\""+ReadData.y[99]+"\" Z=\""+ReadData.z[99]+"\" A=\""+ReadData.a[99]+"\" B=\""+ReadData.b[99]+"\" C=\""+ReadData.c[99]+"\"/>"+ "\n"
                    +   "</Read>"+ "\n"
                    +   "<Show error=\""+isContinue+"\" temp=\"9929\">Taginfo in attributes</Show>"+ "\n" 
                    +   "<Free>2912</Free>" + "\n" 
                    +   "</Sensor>";
            // 发送XML字符串
            PrintWriter out = new PrintWriter(mySocket.getOutputStream(), true);
            out.println(xmlString);
            out.flush();

            // ------------ XML接收資料 (DOM)------------
            InputStream is = mySocket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String brString = br.readLine();
            System.out.println(brString);

            // 將STRING轉成NODE物件
            // 得到DocumentBuilderFactory的實體
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            // 得到DocumentBuilder的實體
            DocumentBuilder db = dbf.newDocumentBuilder();
            // 得到Document的實體
            org.w3c.dom.Document document = db.parse(new ByteArrayInputStream(brString.getBytes()));
            // 得到Element的實體, 此物件是實際的XML內容
            Element el = document.getDocumentElement();
            // 得到節點的資料
            NodeList nl = el.getElementsByTagName("LastPos");

            int nlInt = nl.getLength();
            System.out.println(nlInt);
            // X的值為LastPos的屬性所以要先getAttributes()
            String xPosString = nl.item(0).getAttributes().getNamedItem("X").getNodeValue();
            String yPosString = nl.item(0).getAttributes().getNamedItem("Y").getNodeValue();
            System.out.println("X=" + xPosString + " Y=" + yPosString);

        } catch (IOException | ParserConfigurationException | SAXException | TransformerFactoryConfigurationError e) {
            // TODO Auto-generated catch block
            wftolog.addLog("ERROR:傳輸PTP資料失敗。\n");
            e.printStackTrace();
        } finally {

            try {
                mySocket.close();
                myServer.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                wftolog.addLog("ERROR:傳輸PTP資料成功, 關閉通道失敗。\n");
                e.printStackTrace();
            }

        }

    }
}

Программа остановится при вызове метода readBufferPTP (). В этом методе код не может быть запущен внутри try catch и запускает finally напрямую:

if (ReadFile.isPTP == 0) {
                System.out.println("進去讀LIN資料串");
                **readBufferLIN();**
                wftolog.addLog("傳輸LIN資料成功。");
            } else {
                //確認是否是最後一個檔案
                if (ReadFile.fileCounter == (idv.xml.serverclient.ReadData.fileNumber)) {
                    isContinue = "1";
                }
                System.out.println("進去讀PTP資料串");
                readBufferPTP();
                wftolog.addLog("傳輸PTP資料成功。");
                System.out.println("readFile.fileCounter="+(ReadFile.fileCounter-1)+";readData.fileNumber="+(idv.xml.serverclient.ReadData.fileNumber - 1));
                if (ReadFile.fileCounter == (idv.xml.serverclient.ReadData.fileNumber)) {
                    break;
                }
            }

Из-за отсутствия сообщения об ошибке у меня нет изображения для вас. Я буду загружать файл JAR.

Поскольку я не знаю, как загрузить файл, я прошёл файл Манифеста, как показано ниже:

Manifest-Version: 1.0
Main-Class: idv.xml.serverclient.HMI_Window
Class-Path: lib/jaxen-1.1.6.jar lib/jdom-2.0.6.jar lib/jdom-2.0.6-contrib.jar
  lib/jdom-2.0.6-javadoc.jar lib/jdom-2.0.6-junit.jar lib/jdom-2.0.6-sources.jar 
  lib/xerceslmpl.jar lib/xml-apis.jar lib/xalan/serializer-2.7.2.jar 
  lib/xalan/xalan-2.7.2.jar

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Я уже решил проблему. Потому что я знаю, что мой код не проблема. Проблема должна быть в банке экспорта. Поэтому я попытался протестировать каждый способ экспорта исходного кода из Eclipse. Последний способ, которым я занимаюсь, это экспорт> Runnable JAR File> Извлечение необходимых библиотек в сгенерированный JAR. Спасибо за вашу помощь.

0 голосов
/ 05 октября 2019

Похоже, у вас есть библиотеки, включенные в ваш проект, которые уже есть у eclipse при его создании, и он может запустить файл jar, однако при попытке запустить его в обозревателе эти библиотечные файлы больше не включаются.

Если вы сжимаете все свои библиотечные файлы и исходный файл JAR в один файл Zip, а затем преобразуете его обратно в файл JAR, ваша программа должна быть исполняемой из проводника.

Вы делаете это, извлекая все из ваших файлов библиотеки jar и добавляя все в один сжатый файл, единственный файл манифеста должен быть из вашего основного файла jar.

This Ссылка должна дать вам более подробную информацию, если вы не знаете, как это сделать. Обязательно измените файл манифеста соответствующим образом.

...