JAVA我定一了一个包却不能再另一个包中访问,提示不存在此包?为什么?

JAVA我定一了一个包却不能再另一个包中访问,提示不存在此包?为什么?packageorg.lxh.demo08.a;publicclassDemo{publicStri... JAVA我定一了一个包却不能再另一个包中访问,提示不存在此包?为什么?
package org.lxh.demo08.a;

public class Demo {

public String getinfo(){
return "**-********************";
}

}

package org.lxh.demo08.b;

import org.lxh.demo08.a.Demo;

public class ImportDemo01 {
public static void main(String args[]){
System.out.println(new Demo().getinfo());
}
}

如上代码,在DOS中运行提示不存在Demo文件,而我复制到eclipse中却可以运行,这应该不是环境变量错误吧?那应该是那里错了,各位大侠帮帮忙吧。
如上代码我在DOS中的输入为:
javac -d . Demo.java
javac -d . ImportDemo01.java
显示错误如图:

如图
展开
 我来答
帐号已注销
2011-06-27
知道答主
回答量:5
采纳率:0%
帮助的人:0
展开全部
不是环境变量的问题。用javac时,如果要导入自己定义的包,必须告诉编译器你定义的包在哪里。当我们使用系统包(比如java.util.*)的时候,由于设置了classpath,所以编译器可以找到,就不会出错。而如果是自己的包,可以这样做:
1.使顶级包与要编译的类在同一个文件夹下,如本例中把 ImportDemo01.java
和org包都放到C:\,注意自己建立文件夹,org文件夹的结构与定义的包结构相同,Demo.java位于C:\org\a\Demo.java。然后到C:\下执行javac ImportDemo01.java
2.临时设置classpath,比如org包在F盘,与要编译的类不在一处。
在dos下:set classpath=%classpath%;f:\
然后到C:\下执行javac ImportDemo01.java
就好了,我已经试过了,两种方法都可以。
kak520
2011-06-27 · TA获得超过687个赞
知道小有建树答主
回答量:433
采纳率:0%
帮助的人:442万
展开全部
运行javac -d . Demo.java后,会在你的目录下生成一个Demo.class文件,将此文件拷贝到org/lxh/demo08/a/目录下(如果目录不存在,要建立),然后再运行javac -d . ImportDemo01.java
追问
生成的。CLASS文件就已经在org/lxh/demo08/a/目录下了,但之后运行javac -d . ImportDemo01.java 就出错了,提示不存在Demo类。怎么回事,帮帮忙吧,谢了,我弄了很久了》
追答
你的目录结构是什么样子的?
应该是
java/ja/org/lxh/demo08/a/吧
你编译ImportDemo01.java 时这个类必须放在
java/ja/下面,而且你的环境变量(CLASSPATH一定要有“.”,也就是当前路径)
你的错误提示就是找不到org/lxh/demo08/a/这个目录,你确定已经把你编译好的Demo.class拷贝到org/lxh/demo08/a/目录了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0bad9c3b1
2011-06-27 · TA获得超过291个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:220万
展开全部
你把导入包语句里的Demo改为*号再试试
追问
改为*也一样不能运行,错错误结果一样,帮帮忙吧
追答
我刚才编译运行了一下,你的代码没问题,我这里编译运行都通过,结果也是你想要的,建议你再仔细检查一下文件的保存名称之类的细节,你是把这两段代码放在两个源文件里面吧?

如果还不行,你先把D:\java\ja目录下的那个org文件夹删除,然后输入命令:set classpath=D:\java\ja 最后按顺序编译demo和importdemo两个类文件。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
java_construct
2011-06-27
知道答主
回答量:32
采纳率:0%
帮助的人:12.5万
展开全部
晕,那是因为你的main方法是静态的。你地明白? 不用我说原因了吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友845f74e61
2011-06-27 · TA获得超过6929个赞
知道大有可为答主
回答量:4050
采纳率:50%
帮助的人:1627万
展开全部
你的第一个就很奇怪,
我这提示找不到文件。你的第一个怎么编译过的?
追问
可以呀,第一个就创建了个包,能编译的,看看我的运行顺序,我的也错了,就是不清楚错在那了,但在eclipse中却能运行,都是一样的程序,
追答
eclipse中当然可以找到包关系了。
那把你的目录结构发一下吧,
java\ja\............
这下面两个文件是怎么放的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式