2013-07-11 3 views
1

명령 줄에서 내 프로그램을 실행하는 데 문제가 있습니다. 내 NetBeansProjects 디렉토리에 2 개의 디렉토리를 만들었습니다. 첫 번째는 foodpackage이고 두 번째 것은 fruitpackage라고하는 식품 패키지의 하위 디렉토리입니다. fruitpackage 안에는 Food.java와 FoodMain.java라는 두 개의 Java 파일이 있습니다. Food.java의 코드는 그림과 같이이다 :java 명령 줄에서

package foodpackage.fruitpackage; 

public class Food{ 

// declare instance variabels 
private String foodVarieties; 
private String foodList; 

// returns foodVarieties 
public String getFoodVarieties(){ 
return foodVarieties; 
} 

// sets foodVarieties 
public void setFoodVarieties(String temp){ 
foodVarieties = temp; 
} 

// returns foodList 
public String getFoodList(){ 
return foodList; 
} 

// sets foodList 
public void setFoodList(String temp){ 
foodList = temp; 
} 
} 

같이 FoodMain.java의 코드는 다음과 같습니다

다음과 같이 내가 명령 줄에서 그것을 실행
import foodpackage.fruitpackage.*; 

public class FoodMain{ 

public static void main(String args[]){ 

// create an object instance of Food class 
Food t = new Food(); 

// set the foodVarieties 
t.setFoodVarieties("Food varieties: Vegetables and Meat"); 

// set the foodList 
t.setFoodList("Food list: chicken, lettuce, and broccoli"); 

// print the foodVarieties 
System.out.println(t.getFoodVarieties()); 

// print the foodList 
System.out.println(t.getFoodList()); 
} 
} 

:

내가 이것을 실행하면
cd /Users/timothylee/NetBeansProjects 
javac -cp . foodpackage/fruitpackage/*.java 
java -classpath . foodpackage/fruitpackage.FoodMain 

, 나는

의 오류가 발생했습니다
Exception in thread "main" java.lang.NoClassDefFoundError: foodpackage/fruitpackage/FoodMain (wrong name: FoodMain) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    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) 

이 오류를 해결하는 데 도움을 줄 수있는 사람이 있습니까? 고맙습니다. + 대신 =

+1

당신은'System.out.println ("some string"= aVariable);을 사용하고 있습니다. 아마도'='대신에'+'를 사용하려고했을 것입니다. 네, 확실히 오타였습니다. –

답변

6

를 사용하여 귀하의 라인은 현재 Strings

System.out.println("ID: " + annaID.getStudentID()); 
1

연결하는 :

System.out.println("ID: " = annaID.getStudentID()); 

= 당신이 찾고있는 연산자가 아닙니다.

System.out.println("ID: " = annaID.getStudentID()); 

당신은 나쁜 문자열로 int를 할당하려고 : 당신이 할 때

System.out.println("ID: " + annaID.getStudentID()); 

annaID.getStudentID()

0

에 의해 반환되는 정수와 문자열을 연결합니다. 대신 + 연산자를 사용

System.out.println("ID: " + annaID.getStudentID()); 
0

은 당신의 코드를 확인 ... 당신이 제공 한 이미지로 당신이 "="대신에 "+"에서 System.out.println 문

에서의 입력 한 것 같습니다