编译包含其他类型对象的java类时收到错误消息

编译包含其他类型对象的java类时收到错误消息,java,Java,我不熟悉java编程语言。我做了一个包裹名包。它包含两个java类A.java和B.java。我正在使用jdk1.5和tomcat。我想创建一个类型的对象,并将其放在B.java中。下面是我如何尝试这样做,但收到两条错误消息 包装 A.java public class A { private String str; public A(){} //constructor method public void setName(String str){

我不熟悉java编程语言。我做了一个包裹名包。它包含两个java类A.java和B.java。我正在使用jdk1.5和tomcat。我想创建一个类型的对象,并将其放在B.java中。下面是我如何尝试这样做,但收到两条错误消息

包装

A.java

public class A {

        private String str;

    public A(){} //constructor method
    public void setName(String str){
        this.str = str;
    }
    public String getName(){
        return str;
    }
}
public class B {

        private String temp;

    public B(){} //constructor method

    public String getTemp(){
        A a = new A();      //creating an object of A type
        temp = a.getName();  //assigning the value of getName method to temp variable
        return temp;        // returning temp variable  
    }
}
D:\>cd java
D:\Java>cd pack
D:\Java\pack>set path=D:\java\jdk1.5\bin  (**setting up path of jdk1.5**)
D:\Java\pack>javac A.java (**Compiling A.java. Compiled it successfully**)
D:\Java\pack>javac A.java (**Compiling B.java. Unable to compile**)

**(Error Message is below)**

D:\Java\pack>javac B.java
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                ^
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                          ^
2 errors
B.java

public class A {

        private String str;

    public A(){} //constructor method
    public void setName(String str){
        this.str = str;
    }
    public String getName(){
        return str;
    }
}
public class B {

        private String temp;

    public B(){} //constructor method

    public String getTemp(){
        A a = new A();      //creating an object of A type
        temp = a.getName();  //assigning the value of getName method to temp variable
        return temp;        // returning temp variable  
    }
}
D:\>cd java
D:\Java>cd pack
D:\Java\pack>set path=D:\java\jdk1.5\bin  (**setting up path of jdk1.5**)
D:\Java\pack>javac A.java (**Compiling A.java. Compiled it successfully**)
D:\Java\pack>javac A.java (**Compiling B.java. Unable to compile**)

**(Error Message is below)**

D:\Java\pack>javac B.java
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                ^
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                          ^
2 errors
Jdk1.5、tomcat和package pack位于下面的目录中

D:\java>

下面是我编译A.java和B.java的步骤

编译A.java

public class A {

        private String str;

    public A(){} //constructor method
    public void setName(String str){
        this.str = str;
    }
    public String getName(){
        return str;
    }
}
public class B {

        private String temp;

    public B(){} //constructor method

    public String getTemp(){
        A a = new A();      //creating an object of A type
        temp = a.getName();  //assigning the value of getName method to temp variable
        return temp;        // returning temp variable  
    }
}
D:\>cd java
D:\Java>cd pack
D:\Java\pack>set path=D:\java\jdk1.5\bin  (**setting up path of jdk1.5**)
D:\Java\pack>javac A.java (**Compiling A.java. Compiled it successfully**)
D:\Java\pack>javac A.java (**Compiling B.java. Unable to compile**)

**(Error Message is below)**

D:\Java\pack>javac B.java
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                ^
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                          ^
2 errors
编译B.java

public class A {

        private String str;

    public A(){} //constructor method
    public void setName(String str){
        this.str = str;
    }
    public String getName(){
        return str;
    }
}
public class B {

        private String temp;

    public B(){} //constructor method

    public String getTemp(){
        A a = new A();      //creating an object of A type
        temp = a.getName();  //assigning the value of getName method to temp variable
        return temp;        // returning temp variable  
    }
}
D:\>cd java
D:\Java>cd pack
D:\Java\pack>set path=D:\java\jdk1.5\bin  (**setting up path of jdk1.5**)
D:\Java\pack>javac A.java (**Compiling A.java. Compiled it successfully**)
D:\Java\pack>javac A.java (**Compiling B.java. Unable to compile**)

**(Error Message is below)**

D:\Java\pack>javac B.java
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                ^
B.java:9: cannot find symbol
symbol  : class A
location: class pack.B
                A a = new A();      //creating an object of A type
                          ^
2 errors

确保在类a和类B中都有一个包语句

A.java

package pack;
public class A{
....
}
B.java

package pack;
public class B{
...
}

不要从目录
D:\Java\pack
编译类,而是转到包的基本目录
D:\Java
,从那里编译并运行:

D:\Java> javac pack\A.java
D:\Java> javac pack\B.java
确保设置了
类路径
环境变量,或者使用
-cp
选项指定类路径:

D:\Java> javac -cp . pack\A.java
D:\Java> javac -cp . pack\B.java

(注意:
-cp.
表示您在类路径中包含当前目录,由
指示)。

是否有“package pack;”在A和B两个类中的语句?将A类导入B类。为什么你总是一遍又一遍地问同一个问题?因为我没有得到最适合我的答案。我试图用不同的方式解释我的问题。如果我违反了这个论坛的规则。“我很抱歉。”萨乌拉布谢谢你的回复。package-pack语句在两个类的顶部。@andypp感谢您的回复。Package语句已在这两个类中。@Jesper感谢您的回复。你的两种方法我都试过了。两个文件都已成功编译。我将pack文件夹粘贴到这个目录D:\Java\tomcat\examples\WEB-INF\classes中。我打开浏览器并打开我的jsp页面来检查它是否工作。导入包包后,我在jsp页面上创建了两个对象<代码>A=新A()
bb=新的B()<代码>a.setName(“我的消息”);out.println(a.getName()+“
”);//这将显示我的消息out.println(b.getTemp())//这将显示null
,而不是显示null,它也应该显示我的消息。它不起作用你以前没有说过任何关于网络应用的事。你有错误吗?如果是这样,那么有什么错误?@Jesper很抱歉我没有提到。当我签入浏览器时,它不会给出任何错误。我想使用它的对象和它的工作状态来设置类A的值。但是,当我试图将一个类方法的值放入B类时。它显示为null。这听起来像是一个与您最初的问题所涉及的类路径问题完全无关的问题。但是看看类
B
中的
getTemp()
方法做了什么,就不足为奇了。您正在创建一个新的
对象,该对象没有名称集。当您得到未设置的名称时,您会得到
null