java 找不到或无法加载主类

文章目录

  • 1、源文件带包名,需要在包外执行
  • 2、执行时带了class后缀
  • 3、`-cp` 添加jar包,要保证报名、路径正确


1、源文件带包名,需要在包外执行

D:\workspace\Idea\aes-encryption-javascript-java\src\test\java\com\example\demo\commontest>tree /f
卷 DATA 的文件夹 PATH 列表
卷序列号为 862C-965A
D:.
    ErrorTest.class
    ErrorTest.java

没有子文件夹

D:\workspace\Idea\aes-encryption-javascript-java\src\test\java\com\example\demo\commontest>java ErrorTest
错误: 找不到或无法加载主类 ErrorTest

D:\workspace\Idea\aes-encryption-javascript-java\src\test\java>java ErrorTest
执行成功

2、执行时带了class后缀

D:\workspace\Idea\aes-encryption-javascript-java\src\test\java>java ErrorTest.class
错误: 找不到或无法加载主类 ErrorTest.class

3、-cp 添加jar包,要保证报名、路径正确

  • 使用 -cp 添加 jar 包的方式,java 不会检查指定路径的jar 是否存在,只会检查 要运行的类是否存在;
  • linux 使用 : 分隔;Windows 使用; 分隔;
  • -cp 会使得 CLASSPATH 变量失效,可以使用 -Xbootclasspath/a: 替代
D:\workspace\run_dir>dir
 驱动器 D 中的卷是 DATA
 卷的序列号是 862C-965A

 D:\workspace\run_dir 的目录

2021/12/19  12:29    <DIR>          .
2021/12/19  12:29    <DIR>          ..
2021/12/16  16:10        43,488,265 marshalsec-0.0.3-SNAPSHOT-all.jar
               1 个文件     43,488,265 字节
               2 个目录 558,255,435,776 可用字节

D:\workspace\run_dir>java -cp 123xxx.jar  marshalsec.jndi.LDAPRefServer
错误: 找不到或无法加载主类 marshalsec.jndi.LDAPRefServer

# 实际根本没有 123xxx.jar 文件;

D:\workspace\run_dir>java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer "http://127.0.0.1:8080/#Exploit" 9999
Listening on 0.0.0.0:9999

你可能感兴趣的:(java,java,jar)