java小白之路--客户端生成的exe文件执行后闪退

package Package;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {
    public static void main(String[] args) throws UnknownHostException, IOException {
        Socket client = new Socket("localhost", 8888);
        
        //StringBuilder tmp = new StringBuilder();
        
        while(true)
        {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String obuffer = br.readLine();
        
        DataOutputStream os = new DataOutputStream(client.getOutputStream());
        DataInputStream is = new DataInputStream(client.getInputStream());
        
        //os.writeUTF(tmp.append("client->").append("hello server").toString());
        os.writeUTF(obuffer);
        os.flush();
        
            String ibuffer = is.readUTF();
            System.out.println(ibuffer);
        }
        
    }
}

改成如下==================================

package Package;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class MyClient {
    public static void main(String[] args) throws UnknownHostException, IOException {
        Socket client = new Socket("localhost", 8888);
        
        //StringBuilder tmp = new StringBuilder();
        String obuffer = "";
        DataOutputStream os = new DataOutputStream(client.getOutputStream());
        DataInputStream is = new DataInputStream(client.getInputStream());
        
        while(true)
        {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            
            while(null != (obuffer = br.readLine()))
            {
                
            
    //        String obuffer = "client->to server";
        
            
            //os.writeUTF(tmp.append("client->").append("hello server").toString());
            os.writeUTF(obuffer);
            os.flush();
            
                String ibuffer = is.readUTF();
                System.out.println(ibuffer);
            }
        }
        
    }
}

读终端输入的时候,加个死循环判断有没有东西输入,否则终端很快退出;

另外在eclipse调试的时候,即没有生成.exe文件的时候,不会出现闪退的情况 。

以上为个人工作经验总结,如有误点,欢迎指正。

你可能感兴趣的:(java)