답변:
Java args
에서는 제공된 명령 행 인수 를String
객체 있습니다.
즉, 프로그램을 실행하면 java MyProgram one two
다음 args
이 포함 ["one", "two"]
됩니다.
의 내용을 출력하려면 다음 args
과 같이 반복하십시오.
public class ArgumentExample {
public static void main(String[] args) {
for(int i = 0; i < args.length; i++) {
System.out.println(args[i]);
}
}
}
args
OS에 관계없이 공백으로 구분되어 있습니까?
-version
예를 들어, java -version
and java.exe -version
이지만 java.exe /version
(main class를로드하려고 시도 하지 않음)를 생각해보십시오 .version
. 누군가가 이것에 걸려 넘어지면 내 2 센트.
이것들은 Java의 명령 행 인수를위한 것입니다.
다시 말해, 달리면
자바 MyProgram 하나 둘
그런 다음 args
포함합니다 :
[ "하나 둘" ]
public static void main(String [] args) {
String one = args[0]; //=="one"
String two = args[1]; //=="two"
}
그 이유는 특정 방식으로 실행하거나 필요한 정보를 제공하도록 응용 프로그램을 구성하기 때문입니다.
Java를 처음 사용하는 경우 공식 Oracle Java ™ Tutorials를 읽으십시오 .
args
호출시 Java 프로그램에 전달 된 명령 행 인수를 포함합니다. 예를 들어 프로그램을 다음과 같이 호출하면
$ java MyProg -f file.txt
그 후는 args
문자열을 포함하는 배열 것 "-f"
및 "file.txt"
.
javac MyProg.java
실행하고 실행하는 것보다 코드를 컴파일해야했습니다 java MyProg -f file.txt
. 답변에 언급 된 곳이 없기 때문에 이에 대한 이유가 있습니까?
.class
먼저 Java 소스 코드를 파일 로 컴파일해야합니다 .
다음 답변은 내 이해 및 일부 테스트를 기반으로합니다.
String [] 인수 란 무엇입니까?
답변->
String [] -> 아시다시피 이것은 간단한 String 배열입니다.
args- >는 배열의 이름입니다. 예를 들어, 컴파일러 및 실행 및 테스트에 문제가없는 것 (예 : ar, argument, param, parameter) 일 수 있습니다.
예)
1) 공공 정적 void main (String [] 인수)
2) 공공 정적 void main (String [] 매개 변수)
이 인수를 언제 사용 하시겠습니까?
Ans->
주요 기능은 개발자가 매우 지능적으로 설계했습니다. 실제 사고는 매우 깊습니다. 기본적으로 커맨드 라인 인수를 기반으로 C & C ++을 고려하여 개발되었지만 현재는 더 이상 사용하지 않습니다.
1- 사용자는 명령 행에서 모든 유형의 데이터를 입력 할 수 있습니다. 숫자 또는 문자열 일 수 있으며 컴파일러가 사용해야하는 데이터 유형은 무엇입니까? 2를 참조하십시오
Thing 2- String은 Java의 int, long, float, double, byte, shot, char와 같은 모든 기본 데이터 유형을 지원하는 데이터 유형입니다. 모든 기본 데이터 유형에서 쉽게 구문 분석 할 수 있습니다.
예를 들어 다음 프로그램은 컴파일 및 실행되며 테스트되었습니다.
입력이-> 1 인 경우
// one class needs to have a main() method
public class HelloWorld
{
// arguments are passed using the text field below this editor
public static void main(String[] parameter)
{
System.out.println(parameter[0] + parameter[1]); // Output is 11
//Comment out below code in case of String
System.out.println(Integer.parseInt(parameter[0]) + Integer.parseInt(parameter[1])); //Output is 2
System.out.println(Float.parseFloat(parameter[0]) + Float.parseFloat(parameter[1])); //Output is 2.0
System.out.println(Long.parseLong(parameter[0]) + Long.parseLong(parameter[1])); //Output is 2
System.out.println(Double.parseDouble(parameter[0]) + Double.parseDouble(parameter[1])); //Output is 2.0
}
}
OP조차도에 대해서만 이야기 String[] args
하고 public static void main(String[] args)
있습니다.
Public
:는 이 메소드에 액세스 할 수있는 사용자를 정의 하는 액세스 수정 자 입니다. 공개는 모든 클래스에서이 메소드에 액세스 할 수 있음을 의미합니다 (다른 클래스가이 클래스에 액세스 할 수있는 경우).
Static
: 클래스 관련 사항을 식별하는 키워드입니다. 이는 주어진 메소드 또는 변수가 인스턴스 관련이 아니라 클래스 관련임을 의미합니다. 클래스 인스턴스를 만들지 않고도 액세스 할 수 있습니다.
Void
: 메소드의 리턴 유형을 정의하는 데 사용됩니다. 메소드가 리턴 할 수있는 것을 정의합니다. 무효는 메소드가 값을 반환하지 않음을 의미합니다.
main
:는 메소드의 이름입니다. 이 메소드 이름은 특정 서명 만있는 애플리케이션의 시작점으로 JVM에서 검색합니다.
String[] args
:는 기본 메소드의 매개 변수입니다.
JDK 소스 코드 (jdk-src \ j2se \ src \ share \ bin \ java.c)를 살펴 보는 경우 :
/* Get the application's main method */
mainID = (*env)->GetStaticMethodID(env, mainClass, "main",
"([Ljava/lang/String;)V");
...
{ /* Make sure the main method is public */
...
mods = (*env)->CallIntMethod(env, obj, mid);
if ((mods & 1) == 0) { /* if (!Modifier.isPublic(mods)) ... */
message = "Main method not public.";
messageDest = JNI_TRUE;
goto leave;
...
java 의 시작 메소드 는 이름이 지정 main
되어야하며 특정 서명이 있어야합니다.public static void main(String[] args)
코드는 또한 public static void main(String[] args)
(jdk-src \ j2se \ src \ share \ bin \ java.c)의 코드를 다른 서명으로 변경하면 작동하지 않지만 다른 변경 가능한 문제가 발생할 수 있음을 알려줍니다. 자바 사양으로 인해
오프 토픽 : OP가이 질문을 한 지 7 년이 지났습니다. OP는 지금까지 자신의 질문에 대답 할 수 있다고 생각합니다.
String [] args
Java로 문자열 배열을 선언하는 방법도 있습니다.
이 메소드 시그니처에서, args
메소드가 호출 될 때 배열 이 값으로 채워집니다 (여기의 다른 예에서 보듯이). 그래도 배우고 있으므로이 args
배열은 다음과 같이 메서드에서 직접 배열을 만든 것과 같습니다.
public void foo() {
String [] args = new String[2];
args[0] = "hello";
args[1] = "every";
System.out.println("Output: " + args[0] + args[1]);
// etc... the usage of 'args' here and in the main method is identical
}
나는 헤어질 것이다
public static void main(String args[])
부분적으로.
"public" 은 어디서나 main ()을 호출 할 수 있음을 의미합니다.
"정적" 은 main ()이 특정 객체에 속하지 않음을 의미합니다
"void" 는 main ()이 값을 반환하지 않음을 의미
"main" 은 함수의 이름입니다. main ()은 프로그램의 시작이므로 특별합니다.
"문자열 []" 은 문자열 배열을 의미합니다.
"args" 는 String []의 이름입니다 (main ()의 본문에 있음). "args"는 특별하지 않다. 다른 이름을 지정할 수 있으며 프로그램은 동일하게 작동합니다.
String[] args
공백으로 구분 된 문자열 모음으로 터미널의 프로그램에 입력 할 수 있습니다. 초보자는이 변수를 사용하지 않지만 여러 번 항상 사용할 수 있습니다.코드를 완성하면 확장자가 .java 인 파일로 코드를 두 번 클릭하여 실행할 수 있지만 콘솔 (Mac의 경우 터미널, Windows의 경우 cmd.exe)을 통해 실행할 수 있습니다. 많은 것들. 한 번은 콘솔 메시지 (System.out.print 또는 System.out.println)가 두 번 클릭되는지 확인할 수 없다는 것입니다. 그들이 할 수있는 또 다른 일은 매개 변수를 지정하는 것이므로 일반적으로 줄을 사용합니다.
java -jar MyCode.jar
프로그램 폴더로 이동 한 후
cd C:My/Code/Location
창문이나
cd My/Code/Location
코드를 실행하려면 Mac에서 (mac는 덜 덜 거칠다는 점에 유의) 매개 변수를 지정하십시오.
java -jar MyCode.jar parameter1 parameter2
프로그램에서 사용할 수있는 args 배열에 저장된 이러한 매개 변수는 사용자가 사용할 파일 또는 프로그램의 메모리 용량과 같은 특수 매개 변수를 사용자가 제어 할 수 있도록하려는 것입니다. 배열을 사용하는 방법을 알고 싶다면이 사이트에서 주제를 찾거나 Google에서 검색하십시오. 여러 개의 매개 변수를 사용할 수 있습니다.
간단한 평신도의 언어로 설명하십시오.
주요 메소드는 JVM을 클래스 이름으로 지정할 때 몇 가지 인수를 제공 할 것으로 기대합니다. 즉, 파일 이름이 Try.java라고 가정하면 명령 프롬프트에서이를 실행하려면 "javac Try.java"를 작성하고 컴파일 한 다음 "java Try"를 실행해야합니다. 이제 단순히 "java Try"를 작성하는 대신 "java Try 1"을 작성한다고 가정하십시오. 여기에 인수 "1"을 전달했습니다. 코드에서 사용하지 않더라도 기본 방법으로 가져옵니다.
기본 메소드가 실제로 "1"인수를 사용했는지 여부를 확인하려는 경우. 기본 메소드 안에 간단히 다음을 입력하십시오.
for(int i = 0; i < args.length; i++) {
System.out.println("Argument is: "+args[i]);
}
나는 위의 답변으로 꽤 잘 설명되어 있다고 생각합니다. 이는 String args[]
단순히 실행할 때 응용 프로그램에 전달할 수있는 문자열 인수의 배열입니다. 완료를 위해 main
메소드에 전달 된 메소드 매개 변수를 String 유형의 변수 인수 (varargs) 로 정의하는 것도 유효 함을 추가 할 수 있습니다 .
public static void main (String... args)
즉, main
메소드는 메소드 배열로 String 배열 ( String args[]
) 또는 varargs ( String... args
)를 승인해야합니다 . 그리고 그 이름을 가진 마술도 없습니다 args
. 아래 예와 같이 글을 arguments
쓰거나 freddiefujiwara
표시 할 수도 있습니다 .
public static void main (String[] arguments)
public static void main (String[] freddiefujiwara)
이 String[] args
매개 변수는 OS에서 명령 행을 통해 애플리케이션을 실행할 때 매개 변수로 전달 된 문자열 배열입니다.
따라서 myApp.jar
Java 애플리케이션을 컴파일하고 패키지했다고 가정하십시오 . 물론 OS에서 앱을 두 번 클릭하여 실행할 수 있지만 다음과 같은 명령 줄 방식으로 실행할 수도 있습니다 (예 : Linux의 경우).
user@computer:~$ java -jar myApp.jar
응용 프로그램을 호출하면 다음과 같은 일부 매개 변수를 전달합니다.
user@computer:~$ java -jar myApp.jar update notify
java -jar
명령은 문자열을 전달합니다 update
그리고 notify
당신에 public static void main()
방법.
그런 다음 다음과 같은 작업을 수행 할 수 있습니다.
System.out.println(args[0]); //Which will print 'update'
System.out.println(args[1]); //Which will print 'notify'
args
반드시 이름을 지정할 필요는 없지만args
(원하는 이름을 지정할 수 있음) 관례를 따르는 것이 가장 좋습니다. 당신은 또한String... args
때때로 볼 수 있습니다 .