当前位置: 技术问答>java相关
请教编译的简单问题,100分!
来源: 互联网 发布时间:2015-10-11
本文导语: 我在work文件夹上有两个类文件a.java和b.java,其中a类中要调用b类。我已经成功编译了b类(javac b.java)。可是在编译a类(javac a.java)时,总报错,说不识别变量b。 请问这是怎么回事? 谢谢! | ...
我在work文件夹上有两个类文件a.java和b.java,其中a类中要调用b类。我已经成功编译了b类(javac b.java)。可是在编译a类(javac a.java)时,总报错,说不识别变量b。
请问这是怎么回事?
谢谢!
请问这是怎么回事?
谢谢!
|
把work所在路径加到classpath中就可以了。
|
编译时你虽然可以用绝对路径来编译类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:>
你看看你的情况是不是例如这样:
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:>
|
a,b在同一个文件夹下是可以直接调用的.
可是在编译a类(javac a.java)时,总报错,说不识别变量b?
什么识别变量b?
你是这么写的吗?
b ??? = new b();
一定是你在新建b类的对象时出错了,你看一看a.java.
如还有行就把a.java搞上来,把错误信息也搞上来.
可是在编译a类(javac a.java)时,总报错,说不识别变量b?
什么识别变量b?
你是这么写的吗?
b ??? = new b();
一定是你在新建b类的对象时出错了,你看一看a.java.
如还有行就把a.java搞上来,把错误信息也搞上来.
|
首先环境正确设置。
其次在同一个目录。
再次import中加入a.java文件。
其次在同一个目录。
再次import中加入a.java文件。
|
我真的确认!
|
在环境变量的设置里把‘.’加上。另外保证那个目录下有b.class.
|
拿到包外运行即可/
|
看看你的b必须是public的
然后
import b;
在b中
(必须保证a,b在同一目录下)
然后要是你再出错,程序有问题。
然后
import b;
在b中
(必须保证a,b在同一目录下)
然后要是你再出错,程序有问题。
|
package 问题
应该没错
应该没错
|
跟package没有关系的
我刚学java的时候就没有用package
只要方在一个文件夹下就可以了
如果出问题那是你程序的问题了
我刚学java的时候就没有用package
只要方在一个文件夹下就可以了
如果出问题那是你程序的问题了