Java java지도 시간 Java에서 명령줄 인수를 사용하는 방법

Java에서 명령줄 인수를 사용하는 방법

Jan 19, 2019 am 10:46 AM

Java에서 명령줄 매개변수를 사용하는 방법: 먼저 터미널 창에서 Java 애플리케이션을 실행한 다음 매개변수를 애플리케이션의 시작점에 전달합니다.

Java에서 명령줄 인수를 사용하는 방법

이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터, Java 버전 8.0.

명령줄 매개변수는 애플리케이션의 구성 속성을 지정하는 방법이 될 수 있으며 Java도 예외는 아닙니다. 운영 체제에서 애플리케이션 아이콘을 클릭하는 대신 터미널 창에서 Java 애플리케이션을 실행할 수 있습니다. 애플리케이션 이름 외에도 애플리케이션의 시작점(예: Java의 경우 기본 메소드)으로 전달되는 여러 매개변수가 뒤에 올 수 있습니다.

예를 들어 NetBeans에는 터미널 창에서 실행할 때 애플리케이션에 전달할 수 있는 여러 시작 매개변수가 있습니다. 예를 들어 -jdkhome은 NetBeans 애플리케이션과 연결된 기본 JDK 대신 사용할 JDK 버전을 지정합니다. .

main 메소드

메인 메소드에서 애플리케이션에 전달된 인수가 어디에 나타나는지 확인해 보겠습니다.

public static void main(String[] args)
{
...do something here
}
로그인 후 복사

명령줄 인수는 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);
        }
    }
}
로그인 후 복사

명령줄 인수 구문

JRE(Java Runtime Engine)는 매개변수를 전달하는 구체적인 구문은 다음과 같습니다.

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]은 배열의 첫 번째 요소(위 값 1)이고, args[1]은 두 번째 요소(값 2)입니다. 등등. length() 코드는 배열의 길이를 정의합니다.

명령줄 매개변수 전달

NetBeans에서는 애플리케이션을 빌드하고 터미널 창에서 실행할 필요 없이 명령줄 매개변수를 전달할 수 있습니다. 명령줄 매개변수를 지정하려면:

프로젝트 창에서 프로젝트 폴더를 마우스 오른쪽 버튼으로 클릭하세요.

속성 옵션을 선택하여 프로젝트 속성 창을 엽니다.

오른쪽 카테고리 목록에서 실행을 선택하세요.

표시되는 인수 텍스트 상자에서 애플리케이션에 전달할 명령줄 인수를 지정합니다. 예를 들어 인수 텍스트 상자에 Apple Banana Carrot를 입력하고 위에 나열된 CommandLineArgs 프로그램을 실행하면 다음과 같은 출력이 표시됩니다.

Apple
Banana
Carrot
로그인 후 복사

Parsing 명령줄 인수

일반적으로 전달된 값을 처리하는 방법에 대한 정보입니다. 매개변수 적용을 알리는 매개변수는 일반적으로 이름 앞에 하이픈 한두 개가 붙습니다. 예를 들어, 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
로그인 후 복사

위 내용은 Java에서 명령줄 인수를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

회사의 보안 소프트웨어가 응용 프로그램이 실행되지 않습니까? 문제 해결 및 해결 방법은 무엇입니까? 회사의 보안 소프트웨어가 응용 프로그램이 실행되지 않습니까? 문제 해결 및 해결 방법은 무엇입니까? Apr 19, 2025 pm 04:51 PM

일부 애플리케이션이 제대로 작동하지 않는 회사의 보안 소프트웨어에 대한 문제 해결 및 솔루션. 많은 회사들이 내부 네트워크 보안을 보장하기 위해 보안 소프트웨어를 배포 할 것입니다. ...

맵 구조를 사용하여 시스템 도킹에서 필드 매핑 문제를 단순화하는 방법은 무엇입니까? 맵 구조를 사용하여 시스템 도킹에서 필드 매핑 문제를 단순화하는 방법은 무엇입니까? Apr 19, 2025 pm 06:21 PM

시스템 도킹의 필드 매핑 처리 시스템 도킹을 수행 할 때 어려운 문제가 발생합니다. 시스템의 인터페이스 필드를 효과적으로 매핑하는 방법 ...

데이터베이스 쿼리 조건을 구축하기 위해 엔티티 클래스 변수 이름을 우아하게 얻는 방법은 무엇입니까? 데이터베이스 쿼리 조건을 구축하기 위해 엔티티 클래스 변수 이름을 우아하게 얻는 방법은 무엇입니까? Apr 19, 2025 pm 11:42 PM

데이터베이스 작업에 MyBatis-Plus 또는 기타 ORM 프레임 워크를 사용하는 경우 엔티티 클래스의 속성 이름을 기반으로 쿼리 조건을 구성해야합니다. 매번 수동으로 ...

분류를 구현하고 그룹의 일관성을 유지하기 위해 이름을 숫자로 변환하려면 어떻게합니까? 분류를 구현하고 그룹의 일관성을 유지하기 위해 이름을 숫자로 변환하려면 어떻게합니까? Apr 19, 2025 pm 11:30 PM

많은 응용 프로그램 시나리오에서 정렬을 구현하기 위해 이름으로 이름을 변환하는 솔루션, 사용자는 그룹으로, 특히 하나로 분류해야 할 수도 있습니다.

Intellij Idea는 로그를 출력하지 않고 스프링 부팅 프로젝트의 포트 번호를 어떻게 식별합니까? Intellij Idea는 로그를 출력하지 않고 스프링 부팅 프로젝트의 포트 번호를 어떻게 식별합니까? Apr 19, 2025 pm 11:45 PM

IntellijideAultimate 버전을 사용하여 봄을 시작하십시오 ...

Java 객체를 어레이로 안전하게 변환하는 방법은 무엇입니까? Java 객체를 어레이로 안전하게 변환하는 방법은 무엇입니까? Apr 19, 2025 pm 11:33 PM

Java 객체 및 배열의 ​​변환 : 캐스트 유형 변환의 위험과 올바른 방법에 대한 심층적 인 논의 많은 Java 초보자가 객체를 배열로 변환 할 것입니다 ...

전자 상거래 플랫폼 SKU 및 SPU 데이터베이스 설계 : 사용자 정의 속성과 귀속없는 제품을 모두 고려하는 방법은 무엇입니까? 전자 상거래 플랫폼 SKU 및 SPU 데이터베이스 설계 : 사용자 정의 속성과 귀속없는 제품을 모두 고려하는 방법은 무엇입니까? Apr 19, 2025 pm 11:27 PM

전자 상거래 플랫폼에서 SKU 및 SPU 테이블의 디자인에 대한 자세한 설명이 기사는 전자 상거래 플랫폼에서 SKU 및 SPU의 데이터베이스 설계 문제, 특히 사용자 정의 판매를 처리하는 방법에 대해 논의 할 것입니다 ...

데이터베이스 쿼리에 tkmyBatis를 사용할 때 엔티티 클래스 변수 이름 빌드 쿼리 조건을 우아하게 얻는 방법은 무엇입니까? 데이터베이스 쿼리에 tkmyBatis를 사용할 때 엔티티 클래스 변수 이름 빌드 쿼리 조건을 우아하게 얻는 방법은 무엇입니까? Apr 19, 2025 pm 09:51 PM

데이터베이스 쿼리에 tkmyBatis를 사용하는 경우 쿼리 조건을 구축하기 위해 엔티티 클래스 변수 이름을 우아하게 가져 오는 방법이 일반적인 문제입니다. 이 기사는 고정 될 것입니다 ...

See all articles