您的位置:首页 > 编程语言 > Java开发

Java命令行编译源程序

2012-03-21 13:39 281 查看
在命令行下,当源文件中含有package时,编译运行有问题了(前提是环境变量没问题),大概的问题如下:

1. 运行编译、执行

javac ThreadTest.java

java 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.class

2. 然后跳到工程目录下,即ThreadTest目录下,即可运行javathread.ThreadTestjava

==================================================================================

以下为引用

/article/9925468.html,其中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"> 即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: