站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题java的包的问题!!

java的包的问题!!

摘要: java的包的问题!!


我在文件中输入了如下代码:

package cn.com;

public class Test
{
int i;

public Test(int i)
{
this.i=i;
}

public void print()
{
system.out.println(i);
}
}

这样的一个类。但在用javac -d . Test.java编译时出现了一个不解的错误:
e:/javalesson/Test.java:3: class Test is public, should be declared in a file named
Test.java
public class Test
^
1 error

是什么的原因?
是不是环境变量的设置有关系?但应该不是啊。
还是与jdk的版本有关系?


你的类(公共类)名和文件的名字应该一样.


e:/javalesson/Test.java
你看,你的Test类应该写到Test.java文件内,你做到了,.

但是你的package不对,.java的包结构和目录结构是一一对应的,区别于C#.



那就是它的路径没有放好了


-d 后面有个路径吧


路过



可能你的文件是小写的test.java吧



楼主我支持你
-----------------
松自萧萧云自飘
风中独酌亦逍遥
抚却凡愁与尘念
琴韵未解恨已销


要和包路径一致嘛。

文件目录结构也必须是cn/com/Text.java


这个是我自己要生成的包cn。com


当不把类声明为公有时是可以通过的,为什么呢?


路径是一个点


我把你的程序编译过了,应该是你的文件名字写成小写的test.java了
还有print()方法中的System要首字母大写!!!


程序没问题,就跟楼上说的一样,你的System的S要大写就可以编译通过了,如果还有什么错误,那可能你的环境配置有问题,可以参考网上环境配置的文章看看!



如果没看错,楼主写的是
javac -d . Test.java

-d 后面多了个点


我是在ultra-edit32中写的,有自动功能。
但为什么我不把类定义为public时可以通过?


我的环境变量都是按照网上的说明设置的啊


一旦有定义为public的class存在,那么该文件的名称就必须和这个class的名称一样。大小写也必须一致。


把public去掉 肯定能解决的


居然发言发了这么多? 你们真的是研究Java的嘛? 反正我是C++程序员.

package cn.com;
e:/javalesson/Test.java

这两个就足够说明问题了.我前面都白说了... ...



搞定了
类名和文件名要一致



lxw1982217(文龙) ( ) 信誉:100 Blog 2006-11-23 16:37:11 得分: 0

我是在ultra-edit32中写的,有自动功能。
但为什么我不把类定义为public时可以通过?

====
这就是类名和文件名要不一致的表现!



healer_kx(甘草{决心把CSDN改造成全国最大的文学爱好者的社区}) ( ) 信誉:100 Blog 2006-11-23 16:45:06 得分: 10



居然发言发了这么多? 你们真的是研究Java的嘛? 反正我是C++程序员.

package cn.com;
e:/javalesson/Test.java

这两个就足够说明问题了.我前面都白说了... ...

=====================================

楼主都用-d编译了,和你说的包、目录没有关系,看来你是白说了。。







↑返回目录
前一篇: 如何在java中创建自自己的包并引用它
后一篇: java 调用搜索引擎的问题