Java 使用从命令行发送的参数运行程序

Java 使用从命令行发送的参数运行程序,java,command-line,arraylist,Java,Command Line,Arraylist,我需要我的程序接受一个字符串参数并将字符拆分。 然后,我想将这些单独的字符添加到ArrayList中,并打印出列表,每个字符都在列表下方 以下是我所拥有的: import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { try{ BufferedReader br = new BufferedReader(new InputStrea

我需要我的程序接受一个字符串参数并将字符拆分。 然后,我想将这些单独的字符添加到ArrayList中,并打印出列表,每个字符都在列表下方 以下是我所拥有的:

import java.util.*;
import java.io.*;

public class Main {

public static void main(String[] args) {
    try{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter argument:");
        String input = br.readLine();
        String value = "";

        ArrayList al = new ArrayList();

        for(int i = 0; i < input.length(); i++){
            value = "" + input.charAt(i);
            al.add(value);
        }

        Iterator it = al.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
            it.remove();
        }

    }catch(IOException e){
        System.out.println(e.toString());
    }
}

}
import java.util.*;
导入java.io.*;
公共班机{
公共静态void main(字符串[]args){
试一试{
BufferedReader br=新的BufferedReader(新的InputStreamReader(System.in));
System.out.println(“输入参数:”);
字符串输入=br.readLine();
字符串值=”;
ArrayList al=新的ArrayList();
对于(int i=0;i
参数应来自命令行,例如: javamyapplesley

提前感谢

导入java.util.*;
import java.util.*;
import java.io.*;

public class Main {

public static void main(String[] args) {
    try{
        String input = String.valueOf(args[0]);//assuming there will always be an input from command line
        String value = "";

        ArrayList al = new ArrayList();

        for(int i = 0; i < input.length(); i++){
            value = "" + input.charAt(i);
            al.add(value);
        }

        Iterator it = al.iterator();
        while(it.hasNext()){
            System.out.println(it.next());
            it.remove();
        }

    }catch(IOException e){
        System.out.println(e.toString());
    }
}

}
导入java.io.*; 公共班机{ 公共静态void main(字符串[]args){ 试一试{ String input=String.valueOf(args[0]);//假设总是有来自命令行的输入 字符串值=”; ArrayList al=新的ArrayList(); 对于(int i=0;i

尝试此操作

这些参数存储在
字符串[]args
数组中 就像我写的。。。但是如果有参数,您应该检查args数组

If (args.length != 0) {
    do something
}
编辑: 如果使用命令行运行程序,则必须首先使用

javac pathtofile
比你能用的还多

java pathtofile

你为什么这么难

if(input.contains("java myApp Lesley"){
window.window();                       //new class where u create the window
}

命令行参数通过其参数
String[]args
传递给main方法。 由于这对于调用程序的人来说并不总是显而易见的,因此在缺少参数时给出提示是一种很好的方式。例如:

if (args.length == 0) {
    System.out.println("Usage: myApp <Name>");
}
else {
    // your code here using args[0]
}
if(args.length==0){
System.out.println(“用法:myApp”);
}
否则{
//您的代码在此使用args[0]
}

如果您使用的是多个命令行参数,请相应地更改检查。

您在上述程序中使用的是用户输入而不是命令行参数参数参数“Lesley”可以在
args[0]
中找到。当我运行以下命令行时,我收到一个java.lang.NoClassDefFoundError:java(我文件的目标)Armant。。。有什么建议吗??我调用错了吗?你编译了你的.java吗?javac path/to/your/file在该java路径/to/your/file之后,当我运行以下命令行时,我得到一个java.lang.NoClassDefFoundError:java(我文件的目标)Armandt。。。有什么建议吗??我调用它是错误的吗?直到你的.class文件的路径?一定是这样。或者简单的方法是转到clas路径(编译此代码后生成.class文件的地方),然后从那里运行java Armant:Documents and settings\ArrA\Prac2\build\classes\Prac2\Main检查该路径下是否存在类文件,然后运行set-CLASSPATH=“C:\Documents and settings\ArrA\Prac2\build\classes\Prac2\”并直接运行以下java主程序,谢谢您的帮助,非常成功