package 的问题
时间:2008-06-19 14:27:10
来源:论坛整理 作者: 编辑:chinaitzhe
- Java code
Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ //文件名:Operator.java package book.basic; public class Operator { private void computeOperator() { int a=8; int b=5; int f=a/b; double g=a/b; System.out.println("(f=a/b)=" f "; (g=a/b)=" g); double h=a/(b*1.0d); float i=a/(b*1.0f); System.out.println("(h=a/(b*1.0d))=" h "(i=a/(b*1.0f))" i); } private void compareOperator() { int a=5; int b=10; System.out.println("(a==b)=" (a==b)); System.out.println("(a<b)=" (a<b)); System.out.println("(a>b)=" (a>b)); System.out.println("(a!=b)=" (a!=b)); System.out.println("(a<=b)=" (a<=b)); System.out.println("(a>=b)=" (a>=b)); } private void bitOperator() { byte a=23; byte b=26; int c=a&b; System.out.println("(c=a&b)=" c); int d=a|b; System.out.println("(d=a|b)=" d); int e=a^b; System.out.println("(e=a^b)=" e); int f=~a; System.out.println("(f=~a)=" f); int g=a>>1; System.out.println("(g=a>>1)=" g); int h=a>>>1; System.out.println("(h=a>>>1)=" h); System.out.println("(-24>>>1)=" (-24>>1) "\t(-24>>>1)" (-24>>>1)); int i=a<<1; System.out.println("(i=a<<1)=" i); } public static void main(String[] args) { Operator test = new Operator(); System.out.println("计算运算符方法的输出:"); test.computeOperator(); System.out.println("比较运算符方法的输出:"); test.compareOperator(); System.out.println("位运算符方法的输出:"); test.bitOperator(); } }
运行错误
错误信息如下:
java.lang.NoClassDefFoundError: Operator (wrong name: book/basic/Operator)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Operator. Program will exit.
Exception in thread "main"
第二行package book.basic 是什么东西啊,是否与路径有关?我电脑里设置的路径如下:
CLASSPATH .;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\jdk\lib\dt.jar;D:\Sun\AppServer\jdk\lib\tools.jar;D:\Sun\AppServer\lib\j2ee.jar;D:\tomcat\bin
JAVA_HOME D:\Sun\AppServer\jdk
网友回复:此回复为自动发出,仅用于显示而已,并无任何其他非凡作用
楼主截止到2008-06-19 13:04:45的汇总数据:
注册日期:2008-6-5
上次登录:2008-6-7
发帖数:6
结贴数:5
结贴率:83.33%
楼主加油
网友回复:你是用cmd运行的?
网友回复:我是在 UltraEdit 按 F9 直接使用命令 java Operator 运行的,可能跟用 cmd 运行一样吧。
网友回复:建议重新安装jdk!
------------------
网友回复:应该 java book.basic.Operator
运行的时候类名要加上包名
才可以
网友回复:
why?
网友回复:java.lang.NoClassDefFoundError的错误,这是因为java解释器找不到
你要运行的类文件。按通常做法是在ClassPath中加入".;"来设定让java
到当前目录下查找要运行的类文件,但是这个办法只适合没有包结构的
最简单的java类文件。对于大多数有包结构的类文件则仍然会出现同样
的错误。
最好的解决办法是,举个例子对于HelloWorld.class文件,它的包
结构为package com.system.register.hello; 你要找到编译生成的
class文件存放的位置,假定路径是C:\xxx\com\system\register\hello\HelloWorld.class
在classpath里加上C:\xxx;
或者你可以在某个盘(假定F盘)下建一个class文件夹,找到编译后文件的package根目录,
对于上边例子就是com文件夹,注重:将com文件夹拷贝到class文件夹目录下
然后在classpath里加上F:\class;
网友回复:
不行,还是那个错误
网友回复:你直接运行 ? 难道不需要编译吗?
这样吧 你用命令去做吧
先把这个文件拷到D盘根目录下面
然后进入命令行吧当前目录切换到d的目录
javac -d . Operator.java //编译,并在当前目录下面生成包结构
java book.basic.Operator //运行 类名要加包名
网友回复:
曾经似乎碰到过类似的,为什么我也不知道
网友回复:编译:
javac book.basic.Operator.java
运行:
java book.basic.Operator
网友回复:任意一个ClassPath路径/book/basic/Operator.class
按上面放置 class 文件,然后
java book.basic.Operator
网友回复:
wrong name: book/basic/Operator
这里应该说明了运行的就是java book.basic.Operator
网友回复:有个建议,先试运行个简单的HelloWorld
网友回复:实在不行就在eclipse里建工程吧,然后直接在eclipse里运行。
网友回复:
你为什么不自己试一下呢 就下结论呢
假如你有一个类Hello 在包test里面
你用java Hello 运行就会报这种错误
网友回复:怎么还没搞定呢?
说到底就是java解释器找不到你要运行的类文件。
你只需把编译好的class文件添加到classpath即可。
具体阅读7楼的内容。
网友回复:
呵呵,终于解决了,不过 -d 是什么啊?
网友回复:
错误: 无法读取: book.basic.Operator.java
1 错误
网友回复:大家回帖也要有点水准
你要告诉他错在哪里
以后他犯同样的错就可以知道问题所在并加以解决
什么换个IDE之类的都是瞎扯,是偷懒的做法
下次他同一个地方跌倒都不知道为什么
网友回复:
-d <目录> 指定存放生成的类文件的位置
网友回复:
加了,不过似乎是编译的问题,不是路径的问题。不管怎样,谢了。
网友回复:
对 主要问题编译时没有生成包结构
网友回复:
对,谢谢指正,下次下结论前会认真考虑.谢谢
网友回复:9楼帮你解决问题是因为-d参数指定了生产class文件的位置
现在你去自己电脑上看看,应该在不同文件路径下存在2个Operator.class文件
你的问题还是没彻底解决,假如没有把你用IDE编译的存放class的路径添加到classpath
再写一个class还是同样的问题,你只能还用-d来勉强过关
你最好是找到IDE编译的class文件存放路径,将它添加到classpath
网友回复:
不好意思,弄错了,路径后面少了个分号,谢谢了。
网友回复:
的确多了个 book 路径,呵呵,明天给你加分。
关键字:package,问题,
上一篇:chm格式的电子书,怎么做
下一篇:下面没有链接了











文章评论
共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面