How to pass arguments when running program by Netbeans?

2

This code in notepadd ++ worked because the command line added example port 5000,6000 etc. But netbeans can not do that. So I have the client and server code here. Exchange of messages,

ClientTCP.java:

import java.io.*;
import java.net.*;

public class ClienteTCP {

   public static void main(String argv[]) 
    {
        try 
        {
            // criação do socket TCP de ligação ao servidor, o 1º argumento
            // é o nome da máquina, o 2º é o número do porto
            Socket sd = new Socket(InetAddress.getByName(argv[0]),(new Integer(argv[1])).intValue());
            // obtenção dos canais de leitura e escrita do socket
            InputStream in = sd.getInputStream();
            OutputStream out = sd.getOutputStream();
            // criação do buffer para envio e recepção de informação
            byte[] buffer = new byte[1024];
            for (;;) {
            // pede a mensagem ao utilizador
            System.out.print("Introduza a mensagem: ");
            System.out.flush();
            int length = System.in.read(buffer);
            // envia ao servidor o buffer através do outputstream
            out.write(buffer, 0, length);
            out.flush();
            // se premiu return, fecho da ligação
            if (length == 1) break;
            // leitura da mensagem ecoada pelo servidor
            length = in.read(buffer);
            System.out.println(new String(buffer,0,0,length));
            }
        } catch (IOException e) 
        {
            // Surgiu algum problema com a ligação ao socket
            System.out.println(e.toString());
        }
        System.out.println("ligação fechada");
    }
}

SimpleServer.java:

import java.io.*;
import java.net.*;

public class ServidorSimples {

    /**
     * @param argv the command line arguments
     */
    public static void main(String argv[]) 
    {

        // obtem o número do porto da linha de comandos. Se não for especificado 
        // um porto o sistema operativo vai escolher automaticamenteum (porto 0)
        int listenPort= (argv.length == 0) ? 0 : (new Integer(argv[0])).intValue();
        ServerSocket SocketEscuta= null;
        InputStream in= null; 
        OutputStream out= null;
        Socket s= null; 
        try 
        {
            SocketEscuta = new ServerSocket(listenPort);
            s = SocketEscuta.accept();
            System.out.println("Ligação estabelecida"); 
            // criação do buffer para receber informação
            byte[] buffer = new byte[1024];
            // obtenção dos canais de leitura e escrita para o novo
            // socket estabelecido
            in = s.getInputStream(); 
            out = s.getOutputStream();
            for (;;) 
            { 
                // Leitura da informação do socket
                int length = in.read(buffer);
                // se apenas return foi lido, fecha a ligação 
                if (length == 1) break;
                // escreve a mensagem no ecrã e devolve-a ao cliente
                System.out.println(new String(buffer,0,0,length));
                out.write(buffer,0,length);
            }
        } catch (IOException e) 
        { 
            // Ocorreu algum problema na recepção ou envio de informação
            System.out.println(e.toString());
        }
        System.out.println("Ligação fechada"); 
    }

}

My question and run the program on netbeans It gives error in this line: Socket sd = new Socket (InetAddress.getByName (argv [0]), (new Integer (argv [1]). IntValue ());

It seems that netbeans does not allow you to choose the port.

No notepadd ++: javac SimpleServer.java java SimpleServer 1234

New Client Window: java ClientTCP localhost 1234

And it works!

but wanted netbeans to allow you to choose the port type this: connection = new Socket (InetAddress.getByName ("localhost"), 5320);

or this server = new ServerSocket (5320.2);

but change so that it works in the client code line 12:

Here is a link with similar questions: link Anyway my code differs a bit. But the line is the same.

    
asked by anonymous 07.06.2015 / 14:21

2 answers

3

To run your file in NetBeans passing arguments you will need to install this plugin Run With Arguments Run With Arguments .

Example (after installed):

-

public static void main(String[] argv) {
    System.out.println(argv[0]);
    System.out.println(argv[1]);
}

Output:

  

arg1

     

arg2

-

Otherwise you'll have to either set the values in the hardcode code) or else run the cmd by passing the arguments.

    
07.06.2015 / 18:38
1

Just right click on the project and then choose Properties .

Inthenextwindow,intheRuntabyoucanenterthebootarguments:

public class Main {
    public static void main(String... args) {
        System.out.println(Arrays.toString(args)); // [foo, bar, baz] 
    }
}
    
08.06.2015 / 06:30