Windows의 명령 행에서 Java 프로그램을 어떻게 실행합니까?


216

Windows의 명령 줄에서 Java 프로그램을 실행하려고합니다. 내 코드는 다음과 같습니다.

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class CopyFile
{
    public static void main(String[] args)
    {

        InputStream inStream = null;
        OutputStream outStream = null;

        try
        {

            File afile = new File("input.txt");
            File bfile = new File("inputCopy.txt");

            inStream = new FileInputStream(afile);
            outStream = new FileOutputStream(bfile);

            byte[] buffer = new byte[1024];

            int length;
            // copy the file content in bytes
            while ((length = inStream.read(buffer)) > 0)
            {

                outStream.write(buffer, 0, length);

            }

            inStream.close();
            outStream.close();

            System.out.println("File is copied successful!");

        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
    }
}

프로그램을 실행하는 방법을 잘 모르겠습니다. 어떤 도움이 필요하십니까? Windows에서 가능합니까? 다른 환경과 다른 이유는 무엇입니까 (JVM이 한 번 작성되고 어디서나 실행된다고 생각 했습니까)?


33
javac CopyFile.java그리고java CopyFile
— alfasin

지금 명령 행에 있습니다. txt 파일을 프로그램과 같은 폴더에 저장해야합니까?
— 엘리자베스 터너

어떤 패키지 것은하지 CopyFile상주
— MadProgrammer

1
@Elizabeth Turner는 먼저 JRE (Java Runtime Env)를 설치하고 모든 폴더에서 액세스 할 수 있는지 확인해야합니다 (Java / Javac 경로는 PATH env 변수에 포함됨). 그런 다음 CopyFile.java가있는 동일한 폴더에서 위에서 쓴 명령을 실행하십시오.
— alfasin

답변:


240

출처 : javaindos.

파일이 C : \ mywork \에 있다고 가정 해 봅시다.

명령 프롬프트 실행

C:\> cd \mywork

이것은 C : \ mywork를 현재 디렉토리로 만듭니다.

C:\mywork> dir

디렉토리 내용이 표시됩니다. 파일 중 filenamehere.java가 표시되어야합니다.

C:\mywork> set path=%path%;C:\Program Files\Java\jdk1.5.0_09\bin

이는 시스템에 JDK 프로그램을 찾을 수있는 위치를 알려줍니다.

C:\mywork> javac filenamehere.java

컴파일러 인 javac.exe가 실행됩니다. 다음 시스템 프롬프트 만 표시됩니다.

C:\mywork> dir

javac는 filenamehere.class 파일을 작성했습니다. 파일 중 filenamehere.java 및 filenamehere.class가 표시되어야합니다.

C:\mywork> java filenamehere

Java 인터프리터가 실행됩니다. 그러면 프로그램 출력이 표시되어야합니다.

시스템이 javac를 찾을 수 없으면 set path 명령을 확인하십시오. javac가 실행되지만 오류가 발생하면 Java 텍스트를 확인하십시오. 프로그램이 컴파일되었지만 예외가 발생하면 파일 이름과 클래스 이름 및 java HelloWorld 명령에서 철자와 대문자를 확인하십시오. Java는 대소 문자를 구분합니다!


27
내가 메인 클래스의 CopyFile 수를 찾거나로드 할 수 없습니다 "오류가 발생 컴파일러 실행하려고하면 갖는 문제 메신저입니다
— 엘리자베스 터너

2
CopyFile.class를 포함하는 폴더가 현재 디렉토리로 설정되어 있으면 "java -cp. CopyFile"을 시도하십시오. 그렇지 않으면 "java -cp FULLPATH CopyFile"
— Nicholas Kadaeux

코드를 컴파일 및 실행하는 배치 파일을 어떻게 만들 수 있습니까?하지만 이전에 컴파일 된 경우 실행하면됩니까?
— 안드로이드 개발자

2
누락 된 사항 : 클래스가 특정 패키지에 있다고 선언 된 경우 .class파일을 적절한 디렉토리 구조에 넣어야합니다 . 현재 디렉토리는 기본 클래스 경로이므로 -cp .수동으로 설정할 필요가 없습니다 .
— Artur Czajka

2
패키지를 사용해야합니다 : package mypackage; 그런 다음 프로젝트 이름 /으로 이동하십시오. Java 실행 mypackage.Main은
— chrips

108

답을 완성하려면 :

  1. 자바 파일

    TheJavaFile.java
  2. Java 파일을 * .class 파일로 컴파일

    javac TheJavaFile.java
    • 이것은 TheJavaFile.class파일 을 만들 것입니다
  3. 자바 파일의 실행

    java TheJavaFile
  4. 실행 *.jar파일 작성

    • 여기 두 가지 옵션이 있습니다-

      1. 외부 매니페스트 파일로 :

        • 매니페스트 파일 만들기-MANIFEST.mf

        • MANIFEST 파일은 Main Class의 명시적인 항목 일뿐입니다.

        • jar -cvfm TheJavaFile.jar MANIFEST.mf TheJavaFile.class

      2. 진입 점별로 실행 가능 :

        • jar -cvfe TheJavaFile.jar <MainClass> TheJavaFile.class
  5. Jar 파일을 실행하려면

    java -jar TheJavaFile.jar

5
나는 "진입 점으로 실행"을 시도 할 때 메인 클래스가 발견 될 수 없다고하기 때문에 당신은 MANIFEST.MF의 내용을 표시하십시오 수 있습니다
— 피니 Cheyni을

@Pini Cheyni 만약 당신의 클래스가 MainClass라면, 매니페스트 파일은 Main-Class에 대한 엔트리를 가질 것입니다 : MainClass
— jkhosla

@PiniCheyni, 실행 가능한 jar를 생성하는 두 가지 방법이 여기에 잘 설명되어 있습니다. docs.oracle.com/javase/tutorial/deployment/jar/appman.html
— Dinesh Kumar P

포인트 3에서 ..에 java TheJavaFile해당하는 것을 호출 java TheJavaFile.class하면 언급 한 것처럼 Java 파일을 실행하지 않습니다. 클래스 파일을 실행하십시오. 자바 파일은 실행 불가능한 소스입니다
— user2914191

21

Java 클래스가 일부 패키지에있는 경우 Java 클래스 이름 ABC.java이에 있다고 가정 com.hello.programs하고 패키지 이름으로 실행해야합니다.

일반적인 방법으로 컴파일하십시오.

C:\SimpleJavaProject\src\com\hello\programs > javac ABC.java

그러나 그것을 실행하려면 패키지 이름과 Java 클래스 이름을 지정해야합니다.

C:\SimpleJavaProject\src > java com.hello.programs.ABC

19

Java 파일을 컴파일 하여 클래스를 생성하십시오.

javac filename.java

생성 된 클래스를 실행 하십시오.

java filename

"filename"은 실제로 클래스의 이름입니다. java.exe는 모든 * .jar 파일에서이 이름의 클래스를 검색합니다.
— Doomjunky

@Doomjunky 설명해 주시겠습니까? 나쁘거나 좋습니까? 다르게 이름을 지정해야합니까?
— David Ferenczy Rogožan

9

쉽습니다. 파일을 A.text로 저장 한 경우 먼저 A.java로 저장해야합니다. 이제는 Java 파일입니다.

이제 cmd를 열고 컴파일하기 전에 A.java 파일의 경로를 설정해야합니다. 이를 참조 할 수 있습니다 .

그런 다음 명령을 사용하여 파일을 컴파일 할 수 있습니다

javac A.java

그런 다음 사용하여 실행하십시오.

자바 A

그래서 cmd에서 Java 프로그램을 컴파일하고 실행하는 방법입니다. 깊이있는 레슨에서 Java 인 이러한 자료 를 살펴볼 수도 있습니다. Java에서 이해해야 할 많은 것들이 초보자를 위해 다룹니다.


7

명령 행에서 javac를 사용하여 모든 Java 소스를 컴파일 할 수 있습니다. 예를 들어, javac CopyFile.java입니다. 다음을 실행하십시오. java CopyFile. 동일한 디렉토리에있는 한 javac * .java를 사용하여 모든 Java 파일을 컴파일 할 수도 있습니다.

"메인 클래스를 찾거나로드 할 수 없습니다"라는 문제가 발생하면 경로에 jre가 없을 수 있습니다. 이 질문을 살펴보십시오 : 메인 클래스를 찾거나로드 할 수 없습니다


7

파일이 "CopyFile.java"라고 가정하면 다음을 수행하십시오.

javac CopyFile.java
java -cp . CopyFile

첫 번째 줄은 소스 코드를 실행 가능한 바이트 코드로 컴파일합니다. 두 번째 줄은이를 실행하여 먼저 현재 디렉토리를 클래스 경로에 추가합니다 (경우에 따라).


3
mycomputer : bin user $ java -cp. Main.class 오류 : Main class Main.class를 찾거나로드 할 수 없음
— chrips


4

Windows 7에서는 다음을 수행해야했습니다.

빠른 길

  1. JDK 설치 http://www.oracle.com/technetwork/java/javase/downloads
  2. Windows에서 "C : \ Program Files \ Java \ jdk1.8.0_91 \ bin"(또는 최신 버전의 JDK가 설치된 위치)으로 이동 한 다음 Shift 키를 누른 채 창에서 빈 영역을 마우스 오른쪽 단추로 클릭하고 "열기" 여기에 "명령 창"을 입력하면 명령 줄과 모든 BIN 도구에 액세스 할 수 있습니다. "javac"는 기본적으로 Windows 시스템 PATH 환경 변수에 없습니다.
  3. 파일 컴파일 방법 ( "javac MyFile.java"및 "java MyFile")에 대한 위의 설명을 따르십시오. https://stackoverflow.com/a/33149828/194872

먼 길

  1. JDK 설치 http://www.oracle.com/technetwork/java/javase/downloads/index.html
  2. 설치 후 Windows PATH 환경 변수를 편집하고 C : \ ProgramData \ Oracle \ Java \ javapath 경로에 다음을 추가하십시오. 이 폴더에는 소수의 Java 실행 파일에 대한 심볼릭 링크가 있지만 "javac"는 그 중 하나가 아니므로 Windows 명령 행에서 "javac"를 실행하려고하면 오류가 발생합니다.
  3. 경로를 편집했습니다 : 제어판-> 시스템-> 고급 탭-> "환경 변수 ..."버튼-> "경로"까지 아래로 스크롤하여 강조 표시하고 편집-> "C : \ ProgramData \ Oracle \ Java \ java BIN 폴더 "C : \ Program Files \ Java \ jdk1.8.0_91 \ bin"에 대한 직접 경로가있는 javapath "
  4. JDK 설치를 업그레이드 할 때 중단 될 수 있지만 이제 모든 명령 행 도구에 액세스 할 수 있습니다.

  5. 파일 컴파일 방법 ( "javac MyFile.java"및 "java MyFile")에 대한 위의 설명을 따르십시오. https://stackoverflow.com/a/33149828/194872


2

여기에 이미지 설명을 입력하십시오 1 단계 : 파일이있는 위치에서 명령 프롬프트를 먼저 엽니 다. (Shift를 누른 상태에서 오른쪽 클릭)
2 단계 : 다음 명령을 사용하여 실행합니다. (실행할 파일과 클래스 이름은 Student.java라고합니다) 예제 프로그램은 그림 배경에 있습니다.

     javac Student.java
     java Student

여기에 이미지 설명을 입력하십시오


1

Java 9부터 JDK에는 jshellJava REPL이 포함되어 있습니다.

JDK 9+ bin디렉토리가 경로에 올바르게 추가 되었다고 가정하면 간단하게 다음을 수행 할 수 있습니다.

  1. 실행 jshell File.java— File.java물론 파일입니다.
  2. main메소드 를 호출 할 수있는 프롬프트가 열립니다 jshell> File.main(null)..
  3. 프롬프트를 닫고 JVM 세션을 종료하려면 다음을 사용하십시오. /exit

JShell에 대한 전체 문서는 여기 에서 찾을 수 있습니다 .


1

이제 (JDK 9부터) Java를 사용하여 실행할 수 있습니다. 메인을 포함하는 "Hello.java"를 실행하기 위해 다음을 사용할 수 있습니다. java Hello.java

더 이상 javac를 사용하여 별도로 컴파일 할 필요가 없습니다.


이 기능은 JDK 11에서 추가되었습니다.
— Holger
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.