当前位置: 代码迷 >> Ruby/Rails >> 利用cmd执行java文件报NoClassDefFoundError这样的异常
  详细解决方案

利用cmd执行java文件报NoClassDefFoundError这样的异常

热度:260   发布时间:2016-04-29 02:13:24.0
利用cmd执行java文件报NoClassDefFoundError这样的错误。

最近自己在看一个java的教学视频,里面的老师使用cmd来进行编译和执行java的,我自己为了偷懒,在Eclipse里面写好java程序,然后再进入相应的文件区域,用cmd进行编译

和执行,过程中发现了了一个问题java java.lang.NoClassDefFoundError,如图所示:


之所以出现这个问题,是因为我的UdpSend2,是在udpdemo这个包下面,如下所示:

package udpdemo;

为了解决这个问题,我们可以这样来进行操作:

执行:

javac -d . UdpSend2.java

其中 . 代表当然目录 -d(directory)

执行完成后,你发现本目录下,多了一个udpdemo的文件夹,里面有UdpSend2.class

运行:

java udpdemo.UdpSend2


这样就没有错误了。


下面是用cmd执行java的方法,转载自http://www.cnblogs.com/king1302217/archive/2013/04/08/2584737.html

一、执行单一的java类

1、建立一个记事本,输入    (记住java区分大小写)
public class helloworld
{
    public static void main(String[] args) 
   {
        System.out.println("Hello World");
    }

2、记事本另存为helloworld.java(注意文件名字要与类名一致),存到例如D:\java

3、运行cmd,输入

d:回车           (定位到D盘)
cd java 回车        (定位到文件夹)
4、生成HelloWord.class文件
   输入javac helloworld 回车 
5、运行helloworld程序
   输入java helloworld 回车

6、编译输出Hello World

 

二、执行指定包下的java类

1、建立一个记事本,输入    (记住java区分大小写)
package AAA

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

2、记事本另存为helloworld.java(注意文件名字要与类名一致),存到例如D:\java

3、运行cmd,输入

d:回车           (定位到D盘)
cd java 回车        (定位到文件夹)
4、生成HelloWord.class文件
   输入javac -d . helloworld.java 回车 
5、运行helloworld程序 

   输入java AAA/helloworld或者java AAA.helloworld 回车

6、编译输出Hello World

三、执行的java类引用了其他的java类

例如你想执行Package X1下的A.java类,但是A.java中引用了Package X2B.java类,这种情况下操作步骤如下:

1)将类A.javaB.java全部拷贝到一个制定的路径,例如D:\java

2)运行cmd,输入

d:回车           (定位到D盘)
cd java 回车        (定位到文件夹)

3)生成class文件

  输入javac -d . *.java 回车

4)运行A.java程序

  输入java X1.A

 

四、需要同时执行两个java类,例如客户端和服务端的通讯

只需要打开两个cmd分别执行即可,不过需要注意先执行哪个java类



  相关解决方案