2012-10-09 5 views
1

저는 작은 자바 프로젝트를 가지고 있습니다. 그리고 파일을 내 프로젝트 폴더에 구성하는 방법을 구조를 유지하고 싶습니다.javac는 폴더 A에서 폴더 B (linux)로 파일을 컴파일합니다.

bin/, res/src/의 세 폴더가 있습니다. src에는 모든 소스 파일이 있습니다. 인쇄 할 텍스트 파일과 같은 일부 리소스는 런타임 중에 저장되는 파일입니다. 그리고 bin에는 모든 바이너리가 있어야합니다.

나는 bin 폴더에 -d 인수로 내 소스 파일을 컴파일 할 수 있다는 것을 알았다.

javac -d bin src/*.java

그러나 나는 그것이 나에게면 ClassNotFound 오류를 제공 내 프로젝트 폴더에서 java bin/Main를 실행할 수 없습니다. 은 (bin에 가서 왜 ??. java Main 작업을 실행)

두 번째 문제는, 그 파일이 res/bin/에있는 경우에만 액세스 할 수있는 입술. 나는 Eclipse와 같은 것을 원한다. 소스 코드에서 res/은 executor가 프로젝트 폴더에있는 것처럼 사용됩니다.

내가 뭘 하려는지 알기를 바랍니다. 어떤 도움을 주셔서 감사합니다!

답변

2

Java는 .class 파일을 클래스 경로 루트 디렉토리에서 찾을 수 있어야합니다. 따라서 클래스 경로가 . 인 경우 com.mycompany.MyClass 클래스는 ./com/mycompany/MyClass.class이어야합니다. 따라서 기본 디렉토리에서 파일을 실행하려면 -cp bin 명령 줄 인수를 java으로 지정하여 classpath를 설정하십시오.

res 개의 파일을 어떻게 보려고하십니까? 위의 -cp 트릭을 사용하는 경우 new FileReader("res/file1.txt")과 같은 상태 여야합니다. bin 폴더에서 실행하는 경우 new FileReader("../res/file1.txt")

+0

감사합니다. 예, 언급 한 것처럼 액세스하고 있습니다. 맨 페이지에는 sourcepath와 classpath에 관한 내용이 있습니다. -d 매개 변수가 내 파일을 다른 폴더로 컴파일하기 때문에 약간 혼란 스러웠습니다. 클래스 패스는 무엇을 하는가? (그리고 sourcepath ??) – a2r