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

来源:互联网 发布:acfunfix.js 编辑:程序博客网 时间:2024/05/02 02:57
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 blocke.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的配置