日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java运行class文件_java命令行下运行class文件

發布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java运行class文件_java命令行下运行class文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天碰到了一個很變態的問題,寫了一個很簡單的HelloWord.java,內容如下:

package com.yanjiuyanjiu;

public class HelloWorld {

public static void main(String args[]) {

System.out.println("Hello World!");

}

}

在eclipse中運行是可以的,但是在命令行下運行總是失敗。我的工程位置為 d:/workspace/HelloWorld/。

嘗試了很多次,如下

d:/workspace/HelloWorld/bin/com/yanjiuyanjiu/>java HelloWorld

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)

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: HelloWorld.? Program will exit.

Exception in thread "main"

d:/workspace/HelloWorld/bin/com/yanjiuyanjiu/>java -classpath .; HelloWorld

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)

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: HelloWorld.? Program will exit.

Exception in thread "main"

d:/workspace/HelloWorld/bin/com/yanjiuyanjiu/>cd..

d:/workspace/HelloWorld/bin/com/>cd..

d:/workspace/HelloWorld/bin/>java -classpath .; com/yanjiuyanjiu/HelloWorld只有這個成功

Hello World!

d:/workspace/HelloWorld/bin/>java -classpath .; com/yanjiuyanjiu/HelloWorld換了個斜杠就不行了

Exception in thread "main" java.lang.NoClassDefFoundError: com/yanjiuyanjiu/HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)

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: com/yanjiuyanjiu/HelloWorld.? Program will exit.

Exception in thread "main"

d:/workspace/HelloWorld/bin/>java -classpath ./com/yanjiuyanjiu/; HelloWorld

Exception in thread "main"java.lang.NoClassDefFoundError: HelloWorld (wrong name: com/yanjiuyanjiu/HelloWorld)

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: HelloWorld.? Program will exit.

Exception in thread "main"

在網上搜索了大半天,大部分說是環境變量,classpath或JDK版本的問題,還有執行時文件名class后綴不要。我一一試過,都沒有解決。最后無意中換了一下命令符的位置,成功了。總結如下:

1. 環境變量,CLASSPATH當然要設置好,執行時不要帶class后綴;

2. 路徑中的斜杠用“/”而不是“/”;

3. 命令符的當前目錄要在包的起點。比如這里應該在 d:/workspace/HelloWorld/bin/>,如果在 d:/workspace/HelloWorld/bin/com/yanjiuyanjiu/>,反而不行,有點“近水樓臺不得月”的意思,不知道為什么,還請高手解釋一下。

總結

以上是生活随笔為你收集整理的java运行class文件_java命令行下运行class文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。