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.javaFile.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.