java文件cmd窗口编译后,运行class文件时报找不到类的错误。

问题1:

通过bat指令运行java编译后class文件,报类找不到的错误。

C:\Users\Administrator\Desktop>
C:\Users\Administrator\Desktop>javac Hello.java

C:\Users\Administrator\Desktop>java hello

Exception in thread "main" java.lang.NoClassDefFoundError: hello (wrong name: He
llo)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: hello.  Program will exit.

原因分析:在文件通过javac编译文件后,调用时写成了小写字母的名称:

解决:

C:\Users\Administrator\Desktop>java Hello
Hello world!!!

C:\Users\Administrator\Desktop>

注:java代码编程是严格区分大小写的,另外,在调用文件、变量等等内容时,最好保持文件原有的名称,以免出现现在这种情况。


附:bat指令调用java的class文件:


问题2:

带路径java编译时成功的,但是java显示时报错:

C:\Users\Administrator\Desktop>javac C:\Users\Administrator\Desktop\Hello.java

C:\Users\Administrator\Desktop>java C:\Users\Administrator\Desktop\Hello
Exception in thread "main" java.lang.NoClassDefFoundError: C:\Users\Administrato
r\Desktop\Hello
Caused by: java.lang.ClassNotFoundException: C:\Users\Administrator\Desktop\Hell
o
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: C:\Users\Administrator\Desktop\Hello.  Program wi
ll exit.

C:\Users\Administrator\Desktop>

分析:未分析出原因??

解决:

通过cd 到某个路径下,调用java className(不能带后缀.class)


附 :bat文件,执行代码:

::%~d0 是当前盘符;%cd%是当前盘符
set "fileName=Plus"
set "b=%cd%"
cd "%b%\\class"
java "%fileName%"
pause

说明1:java文件里的包(java脚本第一句:package com.home.lib.java;),如果没有路径的话,必须去掉。

说明2:bat文件的命名不要和系统里path里的值有相同的,不然会出一些看起来很奇怪的问题,如指令重复下发一次等等。

说明3:图片中的1、2是按键输入的值。

你可能感兴趣的:(java文件cmd窗口编译后,运行class文件时报找不到类的错误。)