[OSX]

2016-08-03 4 views
0

서브 라이브러리에서 Java를 실행하는 중 오류가 발생했습니다. 따라서 컴파일을 시작하고 숭고한 방식으로 Java를 실행하려고 했으므로 패키지가 정의되지 않은 경우 제대로 작동합니다.[OSX]

이 컴파일하고 실행

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

을하지만 패키지 추가하는 경우 :

package test; 

public class Tester 
{ 
    public static void main(String[] args) 
    { 
     System.out.println("this is a test."); 
    } 
} 

을 나는이 오류가 발생했습니다

Error: Could not find or load main class Tester 
[Finished in 6.8s with exit code 1] 
[cmd: ['javac "Tester.java" && java "Tester"']] 
[dir: /Users/ph/Documents/JAVA/test] 
[path: /usr/bin:/bin:/usr/sbin:/sbin] 

어떤 생각을 왜 이런 일 또는 방법 고쳐?

+1

패키지를 추가 했으므로 test라는 폴더를 만들어야하고 Tester.java를 넣은 다음 테스트 폴더 외부에서 실행해야한다고 생각합니다. 자바 테스트. 테스터 그것을 실행하려면 – Yan

+0

예, 그게 구조입니다, 그게 항상 '테스트'라는 폴더 안에 있었는데 그 이유는 내가 패키지를 추가했지만 그것을 컴파일하지 않고, 내가 그것을 complie하고 그것을 터미널에서 실행하면 그냥 작동합니다. 벌금. – penHolder

답변

1
  1. [명령 : [ 'javac의 "Tester.java"& & 자바 "테스터"']]
  2. [디렉토리 :/사용자/산도/문서/JAVA/테스트]

숭고한 텍스트가 패키지 이름 인 "test"(# 2 참조) 디렉토리에서 프로그램을 컴파일하려고합니다. 이 디렉토리 (# 1 참조) 내에서 "Tester.java"라는 파일을 찾고 있지만 "Tester.java"가 현재 디렉토리 ("JAVA") 안에 있기 때문에 존재하지 않습니다.

패키지에서 Java 파일을 컴파일 할 때 파일은 패키지 계층 구조를 반영하는 디렉토리 구조에 있어야합니다. 따라서 파일을 포함 된 패키지에 해당하는 디렉토리로 이동해야합니다. 예를 들어 example.utils.letters 패키지의 클래스 "A"는 ../example/utils/letters/ 경로에 있어야합니다. A.java

"JAVA/test"폴더를 만들고 거기에 Tester.java를 옮긴 다음 실행하십시오.

+0

답장을 보내 주셔서 감사합니다.하지만 파일을 구성하는 방법을 알고 있습니다. 파일이있는 곳입니다. 그래서 같은 디렉토리에있는 경우 승화가 메인 클래스를 찾을 수없는 이유를 모르겠으므로 묻습니다. 사실 컴파일하고 터미널에서 실행하면 사실상 corectly 작동합니다. – penHolder