2013-01-03 2 views
0

난 내가 뭔가를 클래스 파일통과 명령 줄에서 자바 프로그램을 컴파일 인수

을 만들어 javac의 Foobar.java

한 지금

package abc.def.ghi 
public class Foobar{ 


    public String printS(String s){ 
    System.Out.println(s); 

public static void main(String [] args){ 
    String s = args[0]; 
    Foobar foobar = new Foobar(); 
    foobar.printS(s); 
} 

간단한 자바 프로그램을 작성하고 난

했다
java Foobar 

didnt worked

java Foobar hi //args 

는 그냥 ..이

자바 -cp을했다. 주류

DIdnt worked. 내가 얻고

오류는 다음과 같습니다

Exception in thread "main" java.lang.NoClassDefFoundError: abc/def/ghi/Main 
Caused by: java.lang.ClassNotFoundException: com.intel.hadoop.graphbuilder.conf.Main 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
Could not find the main class: com.intel.hadoop.graphbuilder.conf.Main. Program will exit. 
+0

java -cp. abc.def.ghi.Foobar 안녕 – BevynQ

+3

귀하의 문제는 명령 줄 매개 변수 전달과 관련이 없습니다. 클래스 패스/패키지 이름 문제가 있습니다. – MrSmith42

답변

3

당신이 경로 (path to project)/abc/def/ghi/Foobar.class.class 파일을 넣어나요?

NoClassDefFoundError: abc/def/ghi/Foobar 

그렇지 않은 것 같습니다.

+0

어떻게합니까? – Fraz

+0

@Fraz'Main.class' 파일을'(프로젝트로의 경로)/abc/def/ghi/Main.class'로 아마도 옮깁니까? – Doorknob

+0

Main.class가 아니라 Foobar.class가됩니다. – iamnotmaynard

1

당신이 성공적으로 실행해야합니다 다음, 다음 컴파일러는 패키지의 이름과 일치하는 올바른 디렉토리에 .class 파일을 넣어 것입니다

java abc.def.ghi.Foobar 

javac -d . Foobar.java 

를 사용하여 컴파일하는 경우.

관련 문제