java在命令行下编译带有package命名空间的项目

package com.study.java.net.test;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class SocketRecive {
	
	public static void main(String[] args) {
		DatagramSocket socket = null;
		try {
			socket = new DatagramSocket(9001);
			
			byte[] buf = new byte[1024];
			DatagramPacket packet = new DatagramPacket(buf , buf.length);
			
			socket.receive(packet);
			String message = new String(buf, 0, buf.length);
			System.out.println(message);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			if (socket != null) {
				socket.close();
			}
		}
	}

}

假如上面的这个文件保存在D:\NEON_vision\workspace\java_study\src\com\study\java\net\test这个文件目录下面,那么现在要使用命令行的方式进行编译这个文件,如果还是按照没有命名空间的方式进行编译和运行的话会入坑的。

  1. javac -d D:\NEON_vision\workspace\java_study\src\com\study\java\net\test SocketRecive.java(*.java)
  2. javac -d . SocketRecive.java(*.java)(使用点代替当前目录)

以上两种编译下方式的运行方式: java com.study.java.net.test.SocketRecive

3.第三种编译方式编译到指定的位置:

比如:D:\myclasses

编译命令:javac -d D:\myclasses SocketRecive.java(*.java)

运行命令:set classpath=\myclasses         ----(注意:这里只需要到包名的父目录,因为包名和类名是一个整体)

       java com.study.java.net.test.SocketRecive

      set classpath=                         -----清空classpath的配置

猜你喜欢

转载自blog.csdn.net/tab_yls/article/details/73743584
今日推荐