如何在Java中使用命令行参数
在Java中使用命令行参数的方法:首先从终端窗口运行Java应用程序;然后将参数传递给应用程序的起始点即可。
本文操作环境:Windows7系统、Dell G3电脑、Java8.0版。
命令行参数可以是为应用程序指定配置属性的一种方式,Java也不例外。您可以从终端窗口运行Java应用程序,而不是单击操作系统中的应用程序图标 。除了应用程序名称之外,还可以跟随许多参数,然后将这些参数传递给应用程序的起始点(即,在Java的情况下为main方法)。
例如,NetBeans具有许多启动参数,当从终端窗口运行时,可以将这些参数传递给应用程序(例如,-jdkhome 指定要使用的JDK的版本,而不是与NetBeans应用程序关联的默认JDK)。
main方法
让我们检查一下main方法 ,看看传递给应用程序的参数出现在哪里:
public static void main(String[] args) { ...do something here }
命令行参数可以在名为的String 数组中找到args。
例如,让我们考虑一个被调用的应用程序,CommandLineArgs其唯一的操作是打印传递给它的命令行参数:
public class CommandLineArgs { public static void main(String[] args) { //检查字符串数组是否为空 if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); } //对于字符串数组中的每个字符串 //打印出字符串。 for(String argument: args) { System.out.println(argument); } } }
命令行参数的语法
Java运行时引擎(JRE)期望遵循特定语法传递参数,如下所示:
java ProgramName value1 value2
在上面,“java”调用JRE,后跟您正在调用的程序的名称。接下来是程序的任何参数。程序可以采用的参数数量没有限制,但顺序很重要。JRE按照它们在命令行中出现的顺序传递参数。例如,请考虑以上代码段:
public class CommandLineArgs2 { public static void main(String[] args) { if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); }
当参数传递给Java程序时,args[0]是数组的第一个元素(上面的value1), args[1]是第二个元素(value2),以此类推。length()代码定义了数组的长度。
通过命令行参数
在NetBeans中,我们可以传递命令行参数,而不必构建应用程序并从终端窗口运行它。要指定命令行参数:
右键单击“项目”窗口中的“项目”文件夹。
选择Properties选项以打开项目属性窗口。
在右边的Categories列表中,选择Run。
在出现的Arguments文本框中,指定要传递给应用程序的命令行参数。例如,如果我们在Arguments文本框中输入Apple Banana Carrot并运行上面列出的CommandLineArgs程序,我们将得到输出:
Apple Banana Carrot
解析命令行参数
通常,会传递一个命令行参数,其中包含一些关于如何处理传递的值的信息。通知应用程序参数的参数通常在其名称前有一两个连字符。例如,用于指定JDK路径的启动参数的NetBeans示例是-jdkhome。
这意味着您需要解析命令行参数,以确定如何处理这些值。有几个用于解析命令行参数的Java命令行框架。或者,如果需要传递的参数不多,也可以编写一个简单的命令行解析器:
public class CommandLineArgs { //命令行参数: // -打印输出输出它后面的所有参数 //addnumbers在后面添加所有的数字参数 public static void main(String[] args) { //检查字符串数组是否为空 if (args.length == 0) { System.out.println("There were no commandline arguments passed!"); } else { // 设置一些初始变量 boolean printout = false; boolean addNumbers = false; boolean validNumbers = true; int total = 0; for(String argument: args) { if(argument.equals("-addnumbers")) { printout = false; addNumbers = true; } else if (argument.equals("-printout")) { printout = true; addNumbers = false; } else if (addNumbers) { try { total = total + Integer.parseInt(argument); } catch (NumberFormatException e) { System.out.println("arguments passed with -addnumbers " + "must be integers!"); validNumbers = false; addNumbers = false; } } else if (printout) { System.out.println(argument); } } if (validNumbers) { System.out.println("The total of the number arguments is: " + total); } } } }
上面的代码要么打印参数,要么将它们相加(如果它们是整数)。例如,这个命令行参数将添加数字:
java CommandLineArgs -addnumbers 11 22 33 44
Atas ialah kandungan terperinci 如何在Java中使用命令行参数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Analisis fenomena kebocoran memori program Java pada CPU seni bina yang berbeza. Artikel ini akan membincangkan kes di mana program Java mempamerkan tingkah laku memori yang berbeza di lengan dan cpus seni bina x86 ...

Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...

Bagaimana cara menukar nama ke nombor untuk melaksanakan penyortiran dalam kumpulan? Apabila menyusun pengguna dalam kumpulan, sering kali perlu menukar nama pengguna ke dalam nombor supaya ia boleh berbeza ...
