2017-03-21 5 views
0

여기 내 상황입니다 : 내가 폴더 구조를 가지고 :자바 패키지 실행

C:\Users\user\Desktop\JavaTraining\Chapter3\examples. 

예는 폴더입니다. 이제 패키지 문 package Chapter3;과 함께 제 3 장 폴더에 Calculator.Java이라는 파일 이름이 있습니다. 그래서 커맨드 라인에서 JavaTraining 디렉토리의 파일을 javac Chapter3\Calculator.java으로 컴파일하고 컴파일했고 파일이 Calculator.class으로 생성되었습니다. 하지만 JavaTraining 디렉토리에서 java Chapter3.Calculator 명령을 실행할 때. 그것은 내게 error: Could not find file or load main class Chapter3.Calculator을 던졌습니다.

그럼, Chapter3라는 이름의 examples에 하위 폴더를 생성하고 예제 폴더로 Calculator.java를 복사하여 컴파일합니다 (장 디렉토리에서 실행 된 명령)을 루트 폴더로 장을 생각 파일을 실행했습니다. 오류가 없으면 파일이 실행되었습니다.

이런 일이 나 뒤에 이유는 무엇인가 왜 사람이 나를 설명 할 수 제발, 내가

Calculator.java

주요 기능의 printsum 기능에서 합을 찾기 위해 노력하고 그냥 클래스 계산기입니다 ... 미친 갈거야 두 변수.

나는 위의에 따르면 http://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean 에서 제공되는 제안을 통해 갔다는 구문의 실수 또는 PATH and CLASSPATH 환경 변수 설정 (파일을 실행하려고의 방법) 중 하나였다.

심지어 CLASSPATH 변수가 현재 디렉토리로 설정되어 있는지 확인하기 위해 echo %CLASSPATH%을 시도했습니다. JavaTraining 디렉토리에서 echo 명령을 실행했을 때 .이 표시되었습니다. 제 3 장 폴더를 루트 디렉토리로 사용해도 파일이 실행되지 않았지만 제 3 장의 하위 폴더를 만들고 루트 디렉토리로 Chapter3을 만들었습니다. 이유가 무엇인지 또는 무엇이 잘못 되었습니까?

C:\Users\vikas\Desktop\JavaTraining>javac Chapter3\Calculator.java 

C:\Users\vikas\Desktop\JavaTraining>java Chapter3.Calculator 
Error: Could not find or load main class Chapter3.Calculator 

C:\Users\vikas\Desktop\JavaTraining>cd Chapter3 

C:\Users\vikas\Desktop\JavaTraining\Chapter3>javac examples\Calculator.java 

C:\Users\vikas\Desktop\JavaTraining\Chapter3>java examples.Calculator 
The sum is 30 

C:\Users\vikas\Desktop\JavaTraining\Chapter3> 

Calculator.java 파일 : : 파일을 만들 때

// One Package Statement 
package chapter3; 
// The file in Chapter 3 folder, file in example folder has 
//package examples; 
// One or more import statements 
import java.io.*; 
import java.util.*; 

// Class Declaration 
public class Calculator { 

    // State. Variables and Constants 
    int i=10; 
    long k = 20; 

    // Behavior, one or more methods 
    void printSum(){ 
     long sum; 
     sum = i+ k; 
    System.out.println("The sum is " + (i+k)); 
    } 
    public static void main (String[] args) { 
    Calculator c = new Calculator(); 
    c.printSum(); 
    } 
} 
+0

계산기가 패키지에 들어 있습니까? – matt

+0

클래스 경로는 패키지 계층 구조의 최상위로 설정되어야합니다. '.'로 설정되어 있다면 거기에서 java를 호출하거나 JavaTraining 패키지의'cp' – pvg

+0

클래스 패스를 설정해야합니다. javac Chapter3 \ Calculator.java와 java 3 장 \ 계산기 – LeTex

답변

1

, 그것은 빌드 디렉토리를 가지고 좋은, 다음 자바 클래스를 넣어 것입니다 여기에 출력 명령 줄입니다 올바른 패키지 레이아웃으로

mkdir build 
javac -d build path/to/source/Files.java 
java -cp build package.name.Files