zoukankan      html  css  js  c++  java
  • 声明了包的类Java命令找不到或无法加载主类

    首先你需要配置环境变量:
     CLASSPATH=.;%JAVA_HOME%/lib/dt.jar;%JAVA_HOME%/lib/tools.jar
    
       java 命令会在 CLASSPATH 目录下找相应的 class 文件。

     java HelloWorld
    
        如果你输入上面的命令,那么会在 CLASSPATH 下寻找 HelloWorld.class 文件。

     java tee.Test
    
        如果你输入上面的命令,那么会先在 CLASSPATH 找 tee 目录,然后在 tee 目录里找 Test.class 文件。

        所以说如果你的环境变量配置错误,例如漏了".;",那么就不会在当前目录寻找了。
       (.代表当前目录,..代表上级目录)。

     java -cp . HelloWorld
    
       如果你输入上面的命令,那么必然会在当前目录找 HelloWorld.class 文件。
     
     
    关于包的问题,我再补充以下几点(以我自己写的socket发送端的代码作为例子)
     1 package WebProgramingDemo;
     2 
     3 import java.io.IOException;
     4 import java.net.DatagramPacket;
     5 import java.net.DatagramSocket;
     6 import java.net.InetAddress;
     7 
     8 public class UDPSendDemo {
     9 
    10     /**
    11      * @param args
    12      * @throws IOException 
    13      */
    14     /*
    15      * 创建UDP传输的发送端的步骤;
    16      * 1.建立UDP的socket服务
    17      * 2.明确要发送的数据
    18      * 3.将数据封装成数据包
    19      * 4.用socket服务的send方法将数据包发送出去
    20      * 5.关闭资源
    21      */
    22     public static void main(String[] args) throws IOException {
    23 
    24         System.out.println("发送端启动。。。");
    25         /*
    26          * 创建UDP传输的发送端的步骤:
    27          */
    28         //1.建立UDP的socket服务
    29         DatagramSocket ds = new DatagramSocket(8888);
    30 
    31         // 2.明确要发送的数据
    32         String s1 = "UDP 传输显示!";
    33         // 3.将数据封装成数据包
    34         byte buf[] = s1.getBytes();
    35         DatagramPacket dp = new DatagramPacket(buf, buf.length,
    36                 InetAddress.getByName("192.168.2.103"), 10000);
    37         // 4.用socket服务的send方法将数据包发送出去
    38         ds.send(dp);
    39         // 5.关闭资源
    40         ds.close();
    41         
    42     }
    43 
    44 }

    很明显,UDPSendDemo属于WebProgramingDemo包,
    我们cmd命令行进入到包所在的目录对该java文件进行编译和运行,会出现这样的错误:

    这个类的全名应该是WebProgramingDemo.UDPSendDemo,而我们输入的是UDPSendDemo.

    接着,我们退回到上层目录,因为编译已经通过,所以我们直接运行:

  • 相关阅读:
    编译原理-第二章 一个简单的语法指导编译器-2.4 语法制导翻译
    编译原理-第二章 一个简单的语法指导编译器-2.3 语法定义
    编译原理-第二章 一个简单的语法指导编译器-2.2 词法分析
    LeetCode 1347. Minimum Number of Steps to Make Two Strings Anagram
    LeetCode 1348. Tweet Counts Per Frequency
    1349. Maximum Students Taking Exam(DP,状态压缩)
    LeetCode 1345. Jump Game IV(BFS)
    LeetCode 212. Word Search II
    LeetCode 188. Best Time to Buy and Sell Stock IV (动态规划)
    LeetCode 187. Repeated DNA Sequences(位运算,hash)
  • 原文地址:https://www.cnblogs.com/ysw-go/p/5321106.html
Copyright © 2011-2022 走看看