2014-10-01 148 views
0

我无法在命令行中编译我的类。我必须错过一些非常明显的东西,但我无法弄清楚。Java不编译我的源代码

这里我设置...

环境设置(赢8.1):

JAVA_HOME C:\Program Files\Java\jdk1.8.0_11 

Path %JAVA_HOME%\bin; 

我有 “javaTest” 文件夹中包含两个java文件Run.java和Animal.java。 我可以编译Animal.java,但编译“Run.java”文件时出现错误。

命令行:

C:\>cd C:\javaTest 

C:\javaTest>dir 
Volume in drive C is Local Disk 

Directory of C:\javaTest 

01/10/2014 10:37 AM <DIR>   . 
01/10/2014 10:37 AM <DIR>   .. 
01/10/2014 10:37 AM    337 Animal.java 
01/10/2014 10:36 AM    230 Run.java 
       2 File(s)   567 bytes 
       2 Dir(s) 42,796,736,512 bytes free 

C:\javaTest>javac Animal.java (**note: this gets executed without problems**) 

C:\javaTest>javac Run.java 
Run.java:5: error: cannot find symbol 
       Animal a1 = new Animal(); 
       ^
    symbol: class Animal 
    location: class Run 
Run.java:5: error: cannot find symbol 
       Animal a1 = new Animal(); 
           ^
    symbol: class Animal 
    location: class Run 
Run.java:9: error: cannot find symbol 
       Animal a2 = new Animal("Animal2"); 
       ^
    symbol: class Animal 
    location: class Run 
Run.java:9: error: cannot find symbol 
       Animal a2 = new Animal("Animal2"); 
           ^
    symbol: class Animal 
    location: class Run 
4 errors 

下面是实际的代码:

Run.java

public class Run{ 

     public static void main(String[] args){ 

      Animal a1 = new Animal(); 
      a1.setName("Animal1"); 
      a1.showName(); 

      Animal a2 = new Animal("Animal2");  
      System.out.println(a2.getName()); 

     } 

    } 

Animal.java

public class Animal{ 

     private String name; 

     public Animal() { 

     } 
     public Animal(String name) { 
      this.name = name; 

     } 

     public void setName(String name){ 
      this.name = name; 
     } 

     public String getName(){ 
      return this.name;  
     } 


     public void showName(){ 
      System.out.println(this.name);  
     } 

    } 

我可以运行同样的代码从Eclipse没有任何 问题。所以,我不知道我错过了什么?

回答

4

你必须与实际文件夹添加到类路径:

javac -cp .\;%CLASSPATH% Animal.java 
+0

感谢,延...修改类路径解决了我的问题... – BustedSanta 2014-10-01 14:21:30

+0

奇怪的是,这是必要的。你有CLASSPATH环境变量吗?默认情况下,如果没有指定java/javac,则应该使用当前工作目录(“。”)作为类路径。如果你有一个CLASSPATH环境变量,那么删除它可能会让你的学习生活更轻松。 – Gimby 2014-10-01 15:20:04

+0

我有我的环境变量指向几个位置设置Classpath。但是我的类路径中没有包含“。”我认为这是问题。这真的是我改变的唯一的东西,而且之后我能够编译。 – BustedSanta 2014-10-01 18:12:39