Java之Eclipse中给参数args传递参数和使用命令行

https://blog.csdn.net/xyb890826/article/details/41965935

 

 引言

        一、传递参数

        Main方法的声明与众不同,它具有String[]类型参数args。很明显的,args是一个字符串数组。main方法就像一个带参数的普通方法。可以通过传递实参来调用一个普通方法。那么问题来了,能给main方法传递参数吗?如果能怎么传递呢?

        例如在TestMain类中的main方法是被A中的方法调用的,如下所示:

 

 
  1. class A{

  2. public static void main(String[]args){

  3. String[] strings = {"New York","Boston","Atlanta"};

  4. TestMain.main(strings);

  5. }

  6. }

  7. class TestMain{

  8. public static void main(String[]args){

  9. for(int i = 0;i < args.length;i++)

  10. System.out.println(args[i]);

  11. }

  12. }

        main方法就和其他方法一样,可以被传参数被调用。此外,还可以从命令行传递参数。

        二、使用命令行

        向main方法传递字符串,运行程序时,可以从命令行给main方法传递字符串参数。例如,用三个字符串

arg0 arg1 arg2启动程序TestMain:javaTestmain arg0 arg1 arg2

        其中,参数arg0、arg1、arg2都是字符串,没有必要用双引号扩住它们。如果字符包含空格,那就必须用双引号扩住,如:java TestMain "First num" alpha 53

        它用三个字符串"First num"、alpha、53启动这个程序,其中53是一个数值字符串。因为"First num"是一个字符串,所以要用双引号扩住它们。

        如计算器程序的实现。要开发一个程序,完成整型数的算术运算。程序接收三个参数:一个整数、紧随其后的一个运算符以及另一个整数。如用如下命令对两个整数进行相加:java Calculator 2 + 3

程序将显示输出为:2 + 3 = 5 

 
  1. class Calculator{

  2. public static void main(String[]args){

  3. if(args.length != 3){

  4. System.out.println("Usage:java Calculator operand1 operator operand2");

  5. // System.exit(0);

  6. }

  7. int result = 0;

  8. switch(args[1].charAt(0)){

  9. case '+':result = Integer.parseInt(args[0]) + Integer.parseInt(args[2]);break;

  10. case '-':result = Integer.parseInt(args[0]) - Integer.parseInt(args[2]);break;

  11. case '*':result = Integer.parseInt(args[0]) * Integer.parseInt(args[2]);break;

  12. case '/':result = Integer.parseInt(args[0]) / Integer.parseInt(args[2]);break;

  13. }

  14. System.out.println(args[0]+' '+args[1]+' '+args[2]+" = "+result);

  15. }

  16. }

        我们尝试在Dos命令窗口中输入:java Calculator 2 + 3  其结果如下所示:

并没有期望的输出:2 + 3 = 5 

        这是因为在Eclipse中的命令行参数的使用不是直接在cmd窗口中输入的。下面进入本博文正题,如何在Eclipse中使用命令行。

 

        正文

第一种简单的快捷的方式如下:

Q: java 中args 参数如何传递(Eclipse)不用cmd

A: Eclipse菜单栏中的Run-Run Configurations,其中有个(x)= Arguments,单击该选项,你在Program arguments 下面的空白栏中填写参数几个,,多个参数用空格隔开即可!

Q:如何在命令行中提交input

A: ctrl + d

Q: java中用什麼代碼來接收args參數

A: 如 int k = Integer.parseInt(args[0]);

第二种方式是将控制台作为cmd的输入窗口进行命令行参数的传递

虽然我们已经有了像 Eclipse 这样高级的 IDE,但是我们有时候也是需要在开发的时候使用 Windows 的命令行,来运行一些独立的程序。在两个程序中切换来切换去是很麻烦的。所以 Eclipse 提供了这样的工具,让我们可以在 Eclipse 中使用 Windows 命令行。 具体的实现步骤如下所示:

第一步:设置一个新的外部配置工具 
在 Eclipse 中,选择 “Run -> External Tools -> External Tools Configurations” 
 


第二步:点击"Program",再点击 “New Launch Configuration” 



第三步:New Configuration 界面 



第四步:提供命令行配置的详细信息 
Name:就是你配置的名字,可根据自己的习惯随便取 
Location:CMD.exe 的文件位置 ,一般来说windows中的位置是:c:\Windows\System32\cmd.exe
Working Directory:就是命令行打开后的默认工作路径 ,可是设置为存储的位置,如:c:\

 

第五步:点击上图中的“Common”,在选中“Allocate Console”复选框 
这个选项是把 Eclipse 工作台作为命令行来获得输入和输出。 

 

第六步:点击“Run” 
你将打开一个 F: 为工作路径的命令行 (就是第四步中你所设置的Working Directory路径)

 


这样就设置好了以控制台输入作为cmd.exe,从而方便的使用IDE集成工具Eclipse进行Windows命令的输入了。是不是很简单呢
 

简单的验证一下是否可以运行,效果如下图所示:

来源:网络


智能推荐

Java args参数输入(eclipse)

测试代码: 打印一个矩形,要求输入两个参数长宽 package pack3; public class PrintStar { public static void main(String args[]) { try{ int length=0; int width=0; String str1=args[0]; String str2=args[1]; length=Integer.parseI...

做ftp项目中使用命令行参数及 ----python 命令行 解析模块 optparse

Python: 使用 optparse 处理命令行参数 python optparse命令解析模块:https://www.cnblogs.com/pping/p/3989098.html python optparse模块的简单用法:https://www.cnblogs.com/darkpig/p/5677153.html Parser for command line options:htt...

Java命令行参数理解

前面已经看到多个使用Java数组的示例。每一个Java应用程序都有一个带String arg[]参数的main方法。这个参数表明main方法将接收一个字符串数组,也就是命令行参数。 例如,看一看下面这个程序: 如果在控制台输入java Message -g cruel world命令执行上述Java代码, 则: 输出结果为: Goodbye,cruel world! 注意:在Java应用程序的ma...

eclipse中给main方法传递参数。

  Run -> Run Configurations…   切换到 (x)= Arguments, 在 Program arguments: 输入参数,有多个参数时,用空格隔开,参数中空格时用英文(“”)双引号括起来, 再点击 Run运行  ...

QT的温湿度显示系统

大家好,这里是石侃侃的博客,欢迎前来讨论 这篇文章介绍的是DHT11在2440上的基于Qt5.6的应用 基于单片机系统的温湿度监测系统构成框图如图2-1所示。 图2-1  系统构成框图 该系统采用单片机s3c2440作为了本设计的核心元件。利用LCD作为了显示器件,利用触摸屏作为用户界面输入设备,第一行显示当前实时的温度,湿度,第二行依次显示历史时刻最高的温度值,最高的湿度值。第三行是一...

猜你喜欢

截屏和储存

  MainActivity:...

解决JavaSoft\Prefs Could not open/create prefs root node Software\JavaSoft\Prefs at root 0x80000002

“Could not open/create prefs root node Software\JavaSoft\Prefs atroot 0x80000002. Windows RegCreateKeyEx(...) returned error code 5”, 虽然不影响tomcat的运行,程序也可以正常运行,但是既然报错肯定有隐患,于是决定解决这个问题。 此问题已纠...

Android Theme、colorPrimary、colorPrimaryDark、colorAccent详解

      参考:https://blog.csdn.net/lvxiangan/article/details/78931962...

2015年3月最佳的免费资源分享给设计师

  这里是2015年3月最佳的20个免费资源,这里列表中包含字体,Web 应用程序,设计资源,模板素材等等,对设计师们非常有用,不管是初学者到顶尖的专家。如果我们错过了一些东西,也欢迎大家推荐给我。 您可能感兴趣的相关文章 网站开发中很有用的 jQuery 效果【附源码】 分享35个让人惊讶的 CSS3 动画效果演示 十分惊艳的8个 HTML5 & JavaScript 特效 Web 开发...

[IDE工具篇][git使用]上传代码和下载代码

本篇文章主要讲诉如何在github上创建自己的项目 通过git工具将项目文件拉取下来放入XAMPP开发工具中,完成开发后再讲代码提交到git服务器上。 1. 下载Git GUI(Git的图形化管理工具),下载地址:http://pan.baidu.com/s/1hsmR13m,我的是Win732位系统。下载安装这里省略100字........., 安装成功后,在左下角“搜索程序和文件&...

问答精选

TensorFlow Object Detection API poor results

I have trained TensorFlow Object Detection API on my own PascalVOC dataset with 7 classes. In each class there are from 100 to 200 images. I was using ssd_mobilenet_v1_pets.config standard configurati...

How can I indent a line by several steps in VIM?

How can I indent a line by several steps in VIM? To understand my question, see the example blow: >> indents the current line by one step. 2>> indents two lines by one step Or V2> inden...

Method references in Java 8: is overloading supported?

Is there any way to refer to a group of methods in Java 8, which varies their signature the overloading way? More precisely, I'd like this code to work: I cannot afford to add public static void foo (...

Tkinter: How do I build an application for several different screen resolutions

So I'm working on an application in Python with Tkinter as the GUI framework. The first picture is a screenshot from my coworkers computer, the second is a screenshot from my computer. How can I make ...

Problems to initialize Analytics in ANDROID app

I'm facing problems to use Analytics in my Android App. I'm using the default class generated by Android Studio I don't know how to initialize it, if I do it in the MainActivity in onCreate() each tim...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答