程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java程序在dos下運行的某個錯誤(程序打包)

java程序在dos下運行的某個錯誤(程序打包)

編輯:關於JAVA
 

現象:用eclipse等IDE開發工具編譯通過,可以運行,但是用記事本保存dos下可以編譯,不能運行,錯誤顯示“Exception in thread “main” java.lang.NoClassDefFoundError”。

eg:

package com.deco;

import java.util.*;

public class Test{

public static void main(String args[]){

System.out.println(“Hello package!!!”);

}

}

 

解決過程:1.不可能是環境變量設置錯誤,因為集成開發工具可以運行

2.又用記事本重新寫了個簡單的“Hello package”程序,編譯可以通過,並且完美運行,再次斷定不是環境變量配置的問題。

 

3.後來將程序裡面的包去掉,重新編譯,可以運行,所以應該是包名引起的。

 

類中帶有包名的問題,在命令行下運行。
1.當類沒有包時 dos下
javac Test.java //編譯Test類,生產class文件
java Test //運行Test類
2.當有包名情況下 com.deco.Test
javac -d . Test.java //可以生成包的class文件,也就是像開發工具中生成的文件夾
java com.deco.Test //運行這個類(cd進入com目錄然後進入deco去運行Test.class還是會報錯,此時的類名不是Test而是整個的com.deco.Tset)
在你包名的最開始處開始運行java 包名.類名,命令比如你project目錄下你的存放class文件,假設你的class文件是com.xx.my.class,這樣在project目錄下肯定有 com/xx/my這樣的包結構,因為你的CLASSPATH有.這個路徑,現在應該到project目錄下運行java 包名.類名命令如果你直接去projrct/com/xx/my目錄下就會出現你上面的錯誤了,因為你告訴虛擬機是從當前路徑下找類,而當前文件夾下是沒有com/xx /my這個目錄的!!

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved