java中怎么编译不同文件夹但是相互有关的文件啊

比如说:有主程序文件在f:\aa\bb文件夹下名为a.java,它要调用f:\aa\bb\cc文件夹下的b.java才能正常运行,为什么我到f:\aa\bb\cc编译b.... 比如说:有主程序文件在f:\aa\bb 文件夹下名为a.java,它要调用f:\aa\bb\cc 文件夹下的 b.java才能正常运行, 为什么我到f:\aa\bb\cc 编译b.java没问题 而到f:\aa\bb 再编译a.java就说 找不到包f:\aa\bb\cc ????? 展开
 我来答
lxbccsu
2011-07-07 · 超过16用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:35.2万
展开全部
这就是类路径(classpath)问题,楼主肯定还不是很明白包、类路径、import的作用。
简单的说下:
package是用来组织类的,确保类的唯一性;
classpath是提供给javac、java等工具使用的,用来查找加载相关需要的类;
import是用来在类中导入相关类,提供一种简单的书写形式;

如果b.java的package是aa.bb.cc,且编译后的b.class在f:\aa\bb\cc下,那么其classpath就是f:\ ,不在包aa.bb.cc下的其他类引用b.class,如a.java,就要这样aa.bb.cc.b 或 import aa.bb.cc.b 来使用b类,在编译a.java时需要指定类路径f:\ ,javac -cp .;f:\ a.java (其中的 .; 在JDK5+是可选的,它表是的是当前路径) ;
再假设b.java没有package,那么在a.java中使用b类,无需import语句;但classpath就是f:\aa\bb\cc\;这样在编译a.java时指定类路径f:\aa\bb\cc,javac -cp .;f:\aa\bb\cc a.java;

归类就是:如果类指定了package,class文件就必须在package下,而classpath就是根包名所在路径;如上面指定b.java的package是aa.bb.cc,那么b.class必须在aa\bb\cc下,classpath 就是aa目录所在的路径f:\,编译其它使用了b类但不在包aa.bb.cc下的类 就需要告诉编译器b类的classpath ;
andy0566
推荐于2016-07-14 · TA获得超过4437个赞
知道小有建树答主
回答量:1099
采纳率:75%
帮助的人:299万
展开全部
学习一下关于package,import,访问权限修饰符的内容,一切就都明白了.

在java中,文件夹和包有密切的关系。
内在原理不解释了,自己看一下书。
解决方法是:
比如有一个test文件夹,里面有a,b两个独立的文件夹。
把class A放在文件夹a中,并在开头写上package a;
把class B放在文件夹b中,并在开头写上package b;
把A.java和B.java放在test下,用javac -d . A.java编译,同样编译B.java,
需要注意的是,如果你的A需要B,则要在A.java中的package a;下写一句import b.B;
并且先编译B.java,之后编译A.java.运行的时候在test路径下,运行java a.A
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangbin8988
2011-07-06 · TA获得超过112个赞
知道答主
回答量:60
采纳率:0%
帮助的人:21.8万
展开全部
a.java 调用了 b.java吗?a.java import b.java了没 还有package没 a.java没package b就要package cc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fanzz3434
2011-07-07
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
上GOOGLE搜查就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式