当前页面: 开发资料首页 → 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编译了,和你说的包、目录没有关系,看来你是白说了。。