javac编译的时候报找不到符号的错误 ,我想知道其中原因(一个类引用另外一个类)
a类要被编译成class文件,但是a类中引用b类,找不到b类的class文件,所以会报错,
求补充
如果说有好多个类不在同一个目录下, 布局编译情况如何?
比如有两个类要用到:B.java和C.java,以下布局可做参考.
输出:
callingthemethod'abc()'oftheclassB
callingthemethod'abc()'oftheclassC
importBB.*;importCC.*;publicclassA{publicstaticvoidmain(Stringargs[]){newB().abc();newC().abc();}}
packageBB;publicclassB{publicvoidabc(){System.out.println("callingthemethod'abc()'oftheclassB");}}
packageCC;publicclassC{publicvoidabc(){System.out.println("callingthemethod'abc()'oftheclassC");}}
新手小朋友呀?
我们要让他感受到社区的爱,大家快来呀,这里有个萌新
估计,编译器找不到b类的定义。所以,要检查一下:
补充什么?你自己不是都说了吗?
那如果说我好多个类但是不在一个目录下,我该怎么编译?都放到一个目录下么大量稳定供应国内个人终端代理IP,可对公签合同,价格含税。
寻合作对象:大数据爬虫、自媒体补量、广告联盟。Q3500891807
1、使用IDE进行编译(ide会自动查找不同目录中的源码依赖)
2、使用ant/maven编译,可以指定源码目录,编译脚本会自动递归查找的
3、如果一定要使用javac命令,可以按照如下步骤做:
a、dir/B/S/Xsrc\*.java>filelist.txt 将所有的源码文件生成文件清单存储到filelist.txt中(src是源码的根目录)
b、执行编译命令javac-cp依赖的jar和class -dclass文件输出目录 -g......@filelist.txt 注意最后的@filelist.txt,表示同时编译filelist.txt中的全部源码
最后就可以到输出目录中找到class文件了
PS:你可以按照我上面说的最后一个重新编译jdk源码,因为jdk源码默认是不带-g参数的,所以源码很多时候调试会很不方便,比如方法参数都是arg0、arg1这种,还有就是没有局部变量等。。。。
这种情况下就是不在同一个文件夹下,可以使用包名来标明文件夹的路径
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。