一个关于package的垃圾问题。在线等。先来先得!

liukang520236 2005-11-22 09:59:19
小弟不才
早上看了一点java关于package方面的书
也写了一个小程序

package studyA;

public class HelloWorld{

public static void main(String args[]) {
System.out.println("Hello World");
}

}

但是编译的时候没有错,一运行就显示:
Exception in thread "main" java.lang.NoClassDefFoundError:HelloWorld(wrong name:studyA/HelloWorld)
在网上搜了一下,说是路径错误
我在环境变量里加上classpath C:\LK\A 还是不行
不知道为什么?
求求各位大哥大姐了,
帮帮小弟弟吧。
...全文
266 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2005-11-22
  • 打赏
  • 举报
回复
解决的办法是:
1、如果你的程序(HelloWorld.java)放在在c:\java文件夹里。首先通过cd c:\java

命令进入该目录里;
2、在命令行里编译:javac HelloWorld.java
3、正确后,在当前目录里建立个文件夹,名字与你的package相同。在这里是在

c:\java文件夹中建立studyA文件夹,把你编译得到的文件(HelloWorld.class)放在

studyA文件夹中
4、再在命令行里 运行:java studyA.HelloWorld


要注意一个问题就是设置classpath的问题:
右键点“我的电脑”, 选 “属性” 选“高级”面板中的”环境变量“,在系统

变量中,如果有CLASSPATH变量,就看看变量值里有没有包含 .; 如果没有,

你就在前面添加。如果没CLASSPATH变量你就自己新建一个,并把上面说到的.

;添加上
我的系统是window xp
zengxftm 2005-11-22
  • 打赏
  • 举报
回复
其实java中的package我的理解就相当于Windows操作系统下的文件夹
所以你在执行带包的class时,要指定它的路径。。。。
个人理解 希望大家批评指教。。。。。
myhotsun 2005-11-22
  • 打赏
  • 举报
回复
你的程序没有任何问题。
package studyA;

public class HelloWorld{

public static void main(String args[]) {
System.out.println("Hello World");
}
}
假如你的工作目录是c:\work
HelloWorld.java最好放在c:\work\studyA目录下,编译后的class文件必须放在studyA目录下。
执行的时候你如果你的classpath要包含c:\work这个目录,那以可以在任何路径下执行java HelloWorld,如果你的classpath包含当前路径(.)没有包含c:\work这个目录,那你必须这么执行c:\work>java HelloWorld
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
好了,谢谢
zengxftm(rainbow)大哥
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
yes
zengxftm 2005-11-22
  • 打赏
  • 举报
回复
在studyA的上级目录试试java studyA.HelloWorld
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
c:/java/hello>java my.Hello
这样运行我也试了
还是不行
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
to:myhotsun(科科)
谢谢阿
那你也顺便帮我看看我这程序有什么问题吧
为什么运行不了
不要惜字如金么
myhotsun 2005-11-22
  • 打赏
  • 举报
回复
所以要使用ide工具阿,这些繁琐的事情,就完全没有必要再过问它了。
myhotsun 2005-11-22
  • 打赏
  • 举报
回复
没错就是这样的。
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
我就是在studyA 同级目录执行的阿

我现在很迷惑
如果我想要把一些java程序封装在某个包里
是不是物理上也需要给这些程序新建一个文件夹

比如:
我要把HelloWorld1.java,HelloWorld2.java,HelloWorld3.java,
三个程序都封装在studyA 包里
是不是需要新建一个文件夹studyA
然后把HelloWorld1.java,HelloWorld2.java,HelloWorld3.java,
三个程序放在studyA 里呢?


java真难啊!
打击救救我把!
chzwin 2005-11-22
  • 打赏
  • 举报
回复
你要在studyA 同级目录执行我刚才的那个命令
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
怎么没有人回答啊,晕
大家帮个忙么

是不是我的程序本身就有问题呢?
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
to: chzwin(成志)
不行啊。
还是老错误

liukang520236 2005-11-22
  • 打赏
  • 举报
回复
你说的set classpath=%classpath%;.
是在环境变量里加呢?还是写在程序中阿
真的很郁闷阿
chzwin 2005-11-22
  • 打赏
  • 举报
回复
你先在windows cmd 环境下敲java 看看有没有作用,然后试一下这个:
java HelloWorld -classpath studyA
liukang520236 2005-11-22
  • 打赏
  • 举报
回复
什么意思啊,大哥
我java真的很菜阿
麻烦你说清楚啊
set classpath=%classpath%;.
要写到那呢啊?
zhenyang2002 2005-11-22
  • 打赏
  • 举报
回复
set classpath=%classpath%;.

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧