1. 运行编译、执行
javac ThreadTest.javajava ThreadTest
报错:
找不到main方法,提示:Exception in thread "main" java.lang.NoClassDefFoundError
假设需要编译的文件为D:\JaveWorkspace\ThreadTest\thread\ThreadTest.java
源文件中有package thread
编译、执行方法如下:
1. 在thread目录下javac ThreadTest.java,在thread目录下生成ThreadTest.class和PrintThread.class2. 然后跳到工程目录下,即ThreadTest目录下,即可运行javathread.ThreadTestjava
==================================================================================
以下为引用
http://blog.youkuaiyun.com/tengyun_20/article/details/5934573,其中java的编译和运行,我的方法更简单些。
自己用Java,懒了,基本都用的IDE。所以很多问题都避开了。最近回归命令行,发现当源文件中含有package时,编译运行有问题了(前提是环境变量没问题),大概的问题如下:
1. 普通程序,按照正常方式
javac xxxxx.java
java xxxx
编译运行的话,会出现找不到main方法,提示:Exception in thread "main" java.lang.NoClassDefFoundError 的异常
2. 如果是Applet,按照1中方式编译,然后使用
appletviewer xxxx.htm
运行的话,出现的窗口会显示不全。
若是把xxxx.html直接使用IE打开(我的是IE8),会出现错误,右键点开提示,发现运行错误仍是提示:Exception in thread "main" java.lang.NoClassDefFoundError 的异常。
(以下假设包的路径为A.B.C ,Java文件为xxxx.java,HTML文件为xxxx.html)
然后自己网上找了一下,试了几个方法都不行,或许是自己操作不对。但是以下方法是正确的了,留此做备忘。
1. 编译时,使用
javac –d . xxxx.java (注意–d^.^xxxx.java 中^位置上的空格 )
这样会生成package路径
2. 运行时
java A.B.C.xxxx
这样就OK了。
如果是applet,则运行不变,但是要把HTML文件中的
<applet code="xxxx.class"">
改为
<applet code="A.B.C.xxxx.class"> 即可。