Considering the call:
java MeuPrograma -by<usuario> -<mensagem>
You can simply use the parameters sent to the method main:
public class ClasseQuePossuiMetodoPrincipal {
    public static void main(String... args) {
        System.out.println(args[0]); // Vai exibir -by<usuario>
        System.out.println(args[1]); // Vai exibir -<mensagem>
    }
}
Both are delivered to your application as a String, including containing the special characters you sent. To remove them and have a string more friendly, can do so:
public class ClasseQuePossuiMetodoPrincipal {
    public static void main(String... args) {
        System.out.println(clear(args[0])); // Vai exibir byusuario (pode usar um String#substring para remover o 'by' no início)
        System.out.println(clear(args[1])); // Vai exibir mensagem
    }
    private static String clear(String str){
        return str.replaceAll("[^\\dA-Za-z ]", "");
    }
}
Suggested implementation
A better way to do it is by calling your Java application in the following ways:
When you want to send them all: java MeuPrograma "Mensagem que será enviada a todos."
And when you want to send it to a specific user: java MeuPrograma "Olá, como vai?" "foo"
This way, you can check the amount of arguments sent. If sent a single parameter, we consider that the message should be delivered to everyone. Otherwise, if two arguments are sent it means that the message should be sent to a specific user.
Then your class could stay like this:
public class ClasseQuePossuiMetodoPrincipal {
    public static void main(String... args) {
         //Faz aqui algum tratamento caso args.lenght seja zero.
         //E verifica se args.lenght é igual a 2.
        if(args.lenght == 1)
            send(args[0]); // Todos
        else 
            send(args[0], args[1]); // Envia para um usuário
    }
    private static void send(String message){
        // Envia para todos...
    }
    private static void send(String message, String who){
        // Envia para 'who'...
    }
}
Taking advantage of the same idea, if you want to allow the user to use the application by sending the content of the message followed by a user list to which the message should be sent, for example:
java MeuPrograma "Mensagem para os usuários a seguir..." "joao" "mario" "carlos"
Your class could be implemented like this:
import java.util.ArrayList;
public class ClasseQuePossuiMetodoPrincipal {
    public static void main(String... args) {
        //Faz aqui algum tratamento para verificar se args.lenght é igual ou maior que 1.
        String mensagem = args[0];
        if(args.length == 1)
            send(mensagem);
        else {
            ArrayList<String> usuarios = new ArrayList<>();
            // Começando em 1 pois 0 é a mensagem, já armazenada na variável 'mensagem'
            for(int i = 1; i < args.length; i++)
                usuarios.add(args[i]);
            send(mensagem, usuarios);
        }
    }
    private static void send(String message){
        // Envia para todos
    }
    private static void send(String message, ArrayList<String> sendTo){
        // Envia para todos os usuários na lista 'sendTo'
    }
}
							
							
						 
When you say he uses the command line, you mean the command line itself (like:
java MinhaClasse send -all < mensagem a ser enviada >) or it reads this command from the standard input (type:System.in)? How’s your code so far?– mgibsonbr