关闭

Java命令行编译源程序

1325人阅读 评论(0) 收藏 举报
在命令行下,当源文件中含有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

 

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

以下为引用

http://blog.csdn.net/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"> 即可。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:322645次
    • 积分:3956
    • 等级:
    • 排名:第7966名
    • 原创:83篇
    • 转载:29篇
    • 译文:0篇
    • 评论:38条
    文章分类
    最新评论