最近自己在看一个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 X2下B.java类,这种情况下操作步骤如下:
1)将类A.java和B.java全部拷贝到一个制定的路径,例如D:\java
2)运行cmd,输入
d:回车 (定位到D盘)
cd java 回车 (定位到文件夹)
3)生成class文件
输入javac -d . *.java 回车
4)运行A.java程序
输入java X1.A
四、需要同时执行两个java类,例如客户端和服务端的通讯
只需要打开两个cmd分别执行即可,不过需要注意先执行哪个java类