关于Java中package语句的使用和相关配置问题

JavaCoffee 2002-11-16 01:00:39
1.配置:
在CLASSPATH中加入当前.java所在的父目录路径:E:\tinj,此时的CLASSPATH是下面这个样子:
.;C:\j2sdk1.4.0\lib\tools.jar;C:\j2sdk1.4.0\lib\dt.jar;C:\j2sdk1.4.0\jre\lib;E:\TINJ\
2.使用:
在E:\TINJ\下建立目录c5,在c5目录下有一个.java文件,其代码如下:
package c5;

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

此时,系统编译顺利通过,可在运行的时候给出下面的错误提示信息:
Exception in thread "main" java.lang.NoClassDefFoundError:TestPackage(wrong name c5/TestPackage)

请高手帮忙!
...全文
163 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
JavaCoffee 2002-11-16
  • 打赏
  • 举报
回复
噢。看来楼上的朋友也曾深受package之苦。呵呵。。。
就这样吧,以后再探讨。
结帖。
agipenia 2002-11-16
  • 打赏
  • 举报
回复
我也想不出什么问题了,我把你的程序在我这里运行都通过了。。。
我很关注你的结果,别灰心,我星期345都是在研究这个问题,最后还是搞清楚了嘛。

一个晕package的人。
agipenia 2002-11-16
  • 打赏
  • 举报
回复
大小写问题有没有??
agipenia 2002-11-16
  • 打赏
  • 举报
回复
不好意思,没看清楼主的帖子,让大家又~~~~看了一段废话,爱。。。。。
JavaCoffee 2002-11-16
  • 打赏
  • 举报
回复
答楼上的朋友:
我的CLASSPATH和path设置都没有问题的,只是关于package的引用不正确,因为我已经调试过很多其它的脚本,编译、运行都是很正常的。真是麻烦。
agipenia 2002-11-16
  • 打赏
  • 举报
回复
关于环境变量:
win2000 是在windows系统的高级设置里面(enviroment variables)
有3个变量要设置:
classpath(用户变量)、path、JAVA_HOME(系统变量)
你找到环境变量的设置画面就能看到。
1:classpath 决定了有关程序运行时,程序可能找到类的的路径
(比如我们的jdk,当你敲javac 命令时,jdk就会到classpath指定的目录下去寻找你import的类。)
你的classpath 里面应该加入“e:\tinj\”路径和“."路径。一般“."路径是都有的,代表你javac 命令运行时的当前路径。如果你有“e:\tinj\路径的话,javac就能把你import的类容加到这个路径下形成完整的查找路径,例如:
e:\tinj\c4\TestPackage.java(后面的部分就是编译器加上去的。)
2:path 决定了操作系统寻找编译器的路径,所以应该加入你的jdk所在的目录,应该在你安装jdk的目录的目录下有一个bin子目录,把他的路径加进去就行了。。
3:JAVA_HOME 这个路径可能在你的系统变量里面看不到,你自己新建一个,变量的值 JAVA_HOME = 你的jdk安装目录。
JavaCoffee 2002-11-16
  • 打赏
  • 举报
回复
首先感谢朋友“ agipenia(很黑) ”!
我下面的情况是这样的:
-----------------------
问题一:
编译能正常通过:
e:\tinj\c5\ javac TestPackage.java
但是,执行:
e:\tinj\c5\ java TestPackage
时,出现错误提示,同原帖中的信息;
java 命令的运行有误,应改为:
e:\tinj>java c5.TestPackage
(运行时要到包所在目录执行命令。)///从这里往上,在我机器上调试也是正常的。下面就出问题了。
问题2:
我把你的程序放到我这里运行通过了。
可能1:你的classpath没设定好。
可能2:先将几个相关目录下的*.class文件删掉,然后敲:
e:\tinj\c4>javac TestPackageUse.java 试试。
(打命令时,你的当前目录是有关系的)///我这里编译时还是出上面的错误信息。请问你的Classpath是如何设置的?
HawaiiLeo 2002-11-16
  • 打赏
  • 举报
回复
e:\tinj\c5\ java TestPackage

这个地方错了,不要在包下面执行java TestPackage,
应该跳出包执行 java 包名.类名
agipenia 2002-11-16
  • 打赏
  • 举报
回复
问题一:
编译能正常通过:
e:\tinj\c5\ javac TestPackage.java
但是,执行:
e:\tinj\c5\ java TestPackage
时,出现错误提示,同原帖中的信息;
java 命令的运行有误,应改为:
e:\tinj>java c5.TestPackage
(运行时要到包所在目录执行命令。)
问题2:
我把你的程序放到我这里运行通过了。
可能1:你的classpath没设定好。
可能2:先将几个相关目录下的*.class文件删掉,然后敲:
e:\tinj\c4>javac TestPackageUse.java 试试。
(打命令时,你的当前目录是有关系的)
JavaCoffee 2002-11-16
  • 打赏
  • 举报
回复
现在的情况是:"TestPackage.java"代码如下
package c5;
public class TestPackage
{
public static void main(String[] args)
{
System.out.println("Hello");
}
public void printInfo(String s)
{
System.out.println(s);
}

}
编译能正常通过:
e:\tinj\c5\ javac TestPackage.java
但是,执行:
e:\tinj\c5\ java TestPackage
时,出现错误提示,同原帖中的信息;
---------------------------
而且,我新建了一个“c4”目录后,在这个目录中又新建了一个文件“TestPackageUse.java”,想用来调用包“c5”中的类“TestPackage”的一个方法“printInfo”,代码如下:
import c5.TestPackage;
public class TestPackageUse
{
public static void main(String[] args)
{
printInfo("TestPackageUse");
}
}

此时,“javac TestPackageUse.java”,出错提示如下:
TestPackageUse.java:3:package c5 does not exist
import c5.TestPackage;
TestPackageUse.java:9: cannot resolve symbol
symbol : method printInfo (java.lang.String)
location: class TestPackageUse
printInfo("TestPackageUse");
^
2 errors
----------------------------------------------
请大侠给予帮忙解决这一问题。
agipenia 2002-11-16
  • 打赏
  • 举报
回复
完全同意yhc0125(小程)的说法!!!!
我以程格保证!!!

一个被package 玩弄到恼羞成怒的菜鸟说。
JavaCoffee 2002-11-16
  • 打赏
  • 举报
回复
我当前是在“e:\tinj\c5\”目录执行操作的,“java c5.TestPackage”出错;
按照上面朋友的说法,我试了一下:“e:\tinj\ java c5.TestPackage”也是可以的。
真奇怪,是不是我的Path或者CLASSPATH哪个地方没有配置好吗?
“xxy802(孔明在世) ”朋友,你能正常输出吗?我的怎么不行?
yhc0125 2002-11-16
  • 打赏
  • 举报
回复
不好意思

第一行是:e:\tinj\c5\ javac TestPackage.java
yhc0125 2002-11-16
  • 打赏
  • 举报
回复
e:\tinj\c5\ javac TestPackage.class

e:\tinj\ java c5.TestPackage
xxy802 2002-11-16
  • 打赏
  • 举报
回复
我刚运行没有问题!
你到.class文件包下 java TestPackage 就OK了
knight_qmh 2002-11-16
  • 打赏
  • 举报
回复
e:\tinj\c5\TestPackage.class

e:\java c5.TestPackage

62,614

社区成员

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

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