当前位置: 技术问答>java相关
JAVA中类的调用问题!
来源: 互联网 发布时间:2015-10-12
本文导语: 我编写了一个POINT类 编译成功了 生成了一个CLASS文件 我想在另外一个LINE中调用他是不是直接用point temp=new point(2,3); 这样就可以了那? 他们在一个目录下 我试了,可是编译出现错误Line.java:21: 不能解析符号 ...
我编写了一个POINT类
编译成功了 生成了一个CLASS文件
我想在另外一个LINE中调用他是不是直接用point temp=new point(2,3);
这样就可以了那?
他们在一个目录下
我试了,可是编译出现错误Line.java:21: 不能解析符号
符号:构造方法 Point (int,int)
位置:类 in Point
Point p=new Point(5,-4);
^
Line.java:30: 不能解析符号
符号:构造方法 Point (int,int)
位置:类 in Point
Point q=new Point(2,2);
^
2 个错误
怎么回事那?
编译成功了 生成了一个CLASS文件
我想在另外一个LINE中调用他是不是直接用point temp=new point(2,3);
这样就可以了那?
他们在一个目录下
我试了,可是编译出现错误Line.java:21: 不能解析符号
符号:构造方法 Point (int,int)
位置:类 in Point
Point p=new Point(5,-4);
^
Line.java:30: 不能解析符号
符号:构造方法 Point (int,int)
位置:类 in Point
Point q=new Point(2,2);
^
2 个错误
怎么回事那?
|
你的问题似乎和另外一个帖子的问题一样,看看我的回答有没有用:
把文件所在目录加入到类路径中,否则会找不到b的类定义
编译时你虽然可以用绝对路径来编译类b,那是因为它没有使用其他的类,当你编译的类要用到其他类时,就必须指明类路径,虽然a,b在同一目录下,你要么就在此目录下用javac(一般classpath都设定了"."),要么指明类路径。
你看看你的情况是不是例如这样:
d:下有a.java和b.java
class a{b b1 = new b();}
class b{}
而你在其他地方用javac d:b.java编译通过,但javac d:a.java不通过,如果是上边的情况,就是classpath的问题。
下边是我的一些测试情况,作为参考:
C:>javac a.java
error: cannot read: a.java
1 error
C:>javac d:a.java
d:a.java:1: cannot resolve symbol
symbol : class b
location: class a
class a{b b1 = new b();}
^
d:a.java:1: cannot resolve symbol
symbol : class b
location: class a
class a{b b1 = new b();}
^
2 errors
C:>javac b.java
error: cannot read: b.java
1 error
C:>javac d:b.java
C:>cd d:
D:
C:>d:
D:>javac b.java
D:>javac a.java
D:>
把文件所在目录加入到类路径中,否则会找不到b的类定义
编译时你虽然可以用绝对路径来编译类b,那是因为它没有使用其他的类,当你编译的类要用到其他类时,就必须指明类路径,虽然a,b在同一目录下,你要么就在此目录下用javac(一般classpath都设定了"."),要么指明类路径。
你看看你的情况是不是例如这样:
d:下有a.java和b.java
class a{b b1 = new b();}
class b{}
而你在其他地方用javac d:b.java编译通过,但javac d:a.java不通过,如果是上边的情况,就是classpath的问题。
下边是我的一些测试情况,作为参考:
C:>javac a.java
error: cannot read: a.java
1 error
C:>javac d:a.java
d:a.java:1: cannot resolve symbol
symbol : class b
location: class a
class a{b b1 = new b();}
^
d:a.java:1: cannot resolve symbol
symbol : class b
location: class a
class a{b b1 = new b();}
^
2 errors
C:>javac b.java
error: cannot read: b.java
1 error
C:>javac d:b.java
C:>cd d:
D:
C:>d:
D:>javac b.java
D:>javac a.java
D:>
|
如果在同一个目录下,你只需到该目录下编译就可以了。默认同一个目录下的类是在同一个package中。