你沒有設置好環境變數
所以找不到你的A.CLASS
網上配置環境變數的文章很多,我給你找個連接
就不親自手寫了!
問HelloWorld問題的人實在是太多了,而且經常都以「問一個最簡單的問題」開頭。其
實回想一下,自己也是從這個階段過來的,說一句「你好」,真的是一個最簡單的問題嗎?...//think
好了,言歸正傳,let\´s
say
\"HelloWorld!\"
in
java...
首先,我們要假設一下我們的平台是Windows+JDK(Linux環境下也差不多)。這個環境
是相當普遍、基礎和入門的。確定已經正確安裝JDK了,下一步是小心翼翼地敲入某本教
程上的HelloWorld源碼,存檔,然後編譯,javac
...問題來了:
*
錯誤1:
\´javac\´
不是內部或外部命令,也不是可運行的程序或批處理文件。
(javac:
Command
not
found)
產生的原因是沒有設置好環境變數path。Win98下在autoexce.bat中加入
path=%path%;c:\\jdk1.2\\bin,Win2000下則控制面板->系統->高級->環境變數->系統變
量...看到了?雙擊Path,在後面加上c:\\jdk1.2\\bin。當然我們假設JDK安裝在了
c:\\jdk1.2目錄下(有點唐僧了?)...好像還要重啟系統才起作用...(//知道了!//西
紅柿)
好,再試試!javac
HelloWorld
*
錯誤2:
HelloWorld
is
an
invalid
option
or
argument.
拜託,給點專業精神,java的源程序是一定要存成.java文件的,而且編譯時要寫全
.java呀。
OK,
javac
HelloWorld.java
(這回總該成了吧?)
*
錯誤3:
HelloWorld.java:1:
Public
class
helloworld
must
be
defined
in
a
file
called
\"HelloWorld.java\".
public
class
helloworld{
^
這個問題嘛,是因為你的類的名字與文件的名字不一致。(誰說的,明明看到人家都有
這樣寫的
;(
)
OK,准確地說,一個Java源程序中可以定義多個類,但是,具有public
屬性的類只能有一個,而且要與文件名相一致。還有,main方法一定要放在這個public
的類之中,這樣才能java(運行)這個類。另外一點是Java語言裡面是嚴格區分大小寫
的,初學者要注意呀。像上例中
helloworld
與
HelloWorld
就認為是不一樣,因而...
oh...
好,改好了,嘻嘻...
javac
HelloWorld.java
...(咦,怎麼什麼也沒有呀?)//faint
這就是編譯通過了!看看是不是多了一個
HelloWorld.class
?
(hehe..按書上教的:)
java
HelloWorld
(!!
這個我知道,不是java
HelloWorld.class
喲)
*
錯誤4:
Exception
in
thread
\"main\"
java.lang.NoClassDefFoundError:
HelloWorld
呵呵,這個嘛,就是著名的類路徑(classpath)問題啦。實際上,類路徑是在編譯過程就
涉及的Java中的概念。classpath就是指明去哪裡找用到的類,就這么簡單。由於我們的
HelloWorld沒用到其它的(非java.lang包中的)類,所以編譯時沒遇到這個問題。運行
時呢,就要指明你的類在哪裡了。解決方法嘛,可以用下面的命令運行:
java
-classpath
.
HelloWorld
「.」就代表當前目錄。當然這樣做有點麻煩(是「太麻煩」!),我們可以在環境變數
中設置默認的classpath。方法就照上述設置path那樣。將classpath設為:
classpath=.;c:\\jdk1.2\\lib\\dt.jar;c:\\jdk1.2\\lib\\tools.jar
後面的兩個建議也設上
,以後開發用的著。
java
-classpath
.
HelloWorld(再不出來我就不學java了)
*
錯誤5:
Exception
in
thread
\"main\"
java.lang.NoSuchMethodError:
main
(//咣當)別,堅持住。看看你的代碼,問題出在main方法的定義上,寫對地方了嗎,
是這樣寫的嗎:
public
static
void
main(String
args[])
{
//一個字都不要差,先別問為什麼了...
對,包括大小寫!
java
-classpath
.
HelloWorld
(聽天由命了!)
Hello
World!
(faint!終於...)
歡迎來到Java世界!所以說,無法運行HelloWorld
真的並不是一個「最簡單的問題」。
附:HelloWorld.java
//
HelloWorld.java
public
class
HelloWorld
{
public
static
void
main(String
args[])
{
System.out.println(\"Hello
World!\")
;
}
}
附錄:(其他常見錯誤FAQ)
我是個JAVA初學者,剛裝了JDK1。3,照著書上寫了個HELLOWORLD的程序,
用JAVAC編譯也成功了,目錄下生成了。CLASS文件,
可是當我用JAVA命令執行時,卻出現如下錯誤:
Error
opening
registry
key
\´Software\\JavaSoft\\Java
Runtime
Environment\´
Error:
could
not
find
java.dll
Error:
could
not
find
Java
2
Runtime
Environment.
請問這是哪兒出了問題呀!
回答一:
>裝
1.3.1
吧
>這是個小bug
>自己改改注冊表也行
>運行環境->Runtime
Environment
回答二
>修改你的注冊表中
JavaHome
>RuntimeLib
到正確的目錄
回答三:
>檢查path,將jdk\\bin目錄加在path的開頭
⑵ 為什麼java文件在cmd中編譯不成class文件
java程序編譯之後沒有產生class文件的原因如下:
如果使用cmd進行編譯之後,如果存在錯誤,是無法產生class文件的,也就不能執行。
如果使用eclipse進行編譯之後,沒有開啟自動編譯,就不會自動產生class文件,需要開啟自動編譯,如圖:
⑶ myEclipse編寫的java程序,cmd里不能編譯
首先確定classpath中有「.」
然後保證你依賴的類都在classpath里,否則需要制定classpath參數
在包的最外層執行 java -classpath c:\your_depend_classpath homework.newforder.school
⑷ CMD中用 javac A.java 命令時編譯出錯
應該很難實現,從文件內容確定編碼格式不一定準確。
utf-8,utf-16能用前導字元來確定,其他編碼好像不行。
另外一個項目的文件一般都是一個編碼,這個好像沒太大必要
⑸ 我安裝了Java的基本程序jdk1.5,可是 在cmd中卻不能用Javac 進行文件的編譯
右鍵我的電腦->屬性->高級->環境變數
在系統變數里新建【JAVA_HOME】「F:\Java\jdk1.6.0_12」jdk1.6.0_12是我裝的版本,你看你自己的版本然後改下名字;
【Path】「%JAVA_HOME%\bin;」注意,這個要添加到系統原來的PATH前面,要像有些人說的加後面可能會不能編譯。
【Classpath】「.;%JAVA_HOME%\lib\tools.jar」
然後就是試下看是否配置成功了
關於設置JAVA
HOME的必要性:你若裝TOMCAT或ORACLE等都會改變你的環境設置,總是改path,classpath容易出錯也不方便,所以JAVA
HOME就有了統一指向性,方便不易出錯
開始-運行-CMD然後「javac」會出現很多操作說明,也可以「java
-version」查看版本信息。再就是自己編個簡單的JAVA文件試下了。
⑹ 在網上下載了java的俄羅斯方塊的源代碼,用cmd運行總是不能通過編譯,提示「無效的標志」
javac是編譯的命令
運行時用java 包含主方法的類全名
建議學習一下java的基礎再來運行程序
補充回答:根據你的提示,你的電腦上應該是裝有JDK的,並非不給你詳細步驟,只是需要看到代碼才能准確地寫出步驟,因為你連包名、類名都不知道
詳細步驟:
1.先用javac 命令編譯你下載的所有的.java文件
2.用java命令執行這些文件中的一個含有main()方法的那個文件
ps:執行第一步編譯操作時,需要加上包名,查看包名的辦法是,打開你要編譯的一個.java文件,文件的第一行也就是以package 開頭的一行,package 後面有一個空格,然後後面的內容就是包名,他的寫法是package aaa.bbb.ccc;
你在編譯時的操作:
在命令行輸入:
javac aaa/bbb/ccc/Xxx.java
其中Xxx.java即是你打開這個文件的文件名
一般編譯成功的標志就是你在命令行中輸入上面那句話以後敲回車,然後游標直接跳到下一行,沒有任何提示。然後你會發現,在這個.java文件的同路徑下,多了一個前綴相同,後綴為.class的文件
如果有一些英文提示表示你編譯失敗了,應該是你的包名或類名的原因,仔細修改吧!
執行第二步:
java aaa.bbb.ccc.Xxx
將編譯時的/全部換成.
最後的.java就不要寫了
如果執行成功了,你就可以看到那個俄羅斯方塊的界面了。
說得還算詳細吧,貌似有點羅索了,呵呵,樓主將就看吧,為了這10分我可真不易啊!
⑺ Java 用cmd 為什麼編譯不了
命令錯誤
應該先用命令進入你文件所在的文件夾
然後在此文件夾內執行javac命令
你直接把路徑輸入到命令行是不行的
d: 回車
cd java回車
javac 文件名
⑻ java在cmd中編譯執行出現錯誤 javac咋么就錯了
java環境變數設置 - 詳細版
把jdk安裝到計算機後(這里以jdk1.7來安裝,其他版本一樣),再進行設置,java環境才能夠生效。
首先,右鍵點我的電腦。打開屬性。然後選擇「高級」裡面的「環境變數」,在新打開的界面中的需要設置三個系統變數屬性「JAVA_HOME」、「Path」、「CLASSPATH」。在沒安裝過jdk前,path屬性是原本就存在的,而
JAVA_HOME和CLASSPATH這倆個系統變數是不存在的,需要新建。
點「新建」,然後在「變數名(N)」寫上JAVA_HOME,JAVA_HOME變數表示java的安裝路徑。然後在改變數值(N)寫入剛才安裝的路徑「C:\jdk1.7」。
(註: 如果安裝的路徑不是磁碟C或者不是在jdk1.7這個文件夾,可對應修改。以下文字都是假定安裝在C:\jdk1.7裡面。)
其二,在系統變數裡面找到Path,然後點「編輯」,Path變數表示系統在任何路徑下都可以識別java命令。然後在改變數值(N)寫入「.;%JAVA_HOME%\bin」,(其中「%JAVA_HOME%」的意思為剛才設置JAVA_HOME的值),也可以
直接寫上「C:\jdk1.7\bin」,推薦使用前者,復用性高。
其三,再點「新建」,然後在變數名上寫CLASSPATH,CLASSPATH變數表示java載入類(class or lib)路徑,只有類在CLASSPATH中,java命令才能識別。然後在改變數值(N)寫入「.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar」 (要加.表示當前路徑)
最後,java環境變數設置完畢,按「確定」直至屬性窗口消失,即保存成功
驗證java環境變數設置是否成功。先打開「開始」->「運行」,打入「cmd」,進入dos系統界面。然後輸入「java -version」,如果安裝成功。系統會顯示java version jdk"1.7.0"。這樣java環境變數設置OK了!
總結,java環境變數設置目的:
1,JAVA_HOME
(1)為了方便引用,例如你jdk安裝在C:\Program Files\Java\jdk1.7.0目錄里,則設置JAVA_HOME為該目錄路徑, 那麼以後你要使用這個路徑的時候, 只需輸入%JAVA_HOME%即可, 避免每次引用都輸入很長的路徑串;
(2)歸一原則, 當你jdk路徑需要改變的時候, 你僅需更改JAVA_HOME的變數值即可, 否則你就要更改任何用絕對路徑引用jdk目錄的文檔, 要是萬一你沒改全,某個程序找不到jdk, 後果就可能是程序崩潰;
(3)第三方軟體會引用約定好的JAVA_HOME變數, 才能夠正常使用該軟體, 以後用JAVA久了就會知道, 要是某個軟體不能正常使用, 很可能就是JAVA_HOME設置不對造成的;
2,CLASSPATH
設置CLASSPATH的目的是為了程序能找到相應的".class"文件, 舉個例子: 編譯一個JAVA程序---A.java, 會得到一個A.class的類文件,在當前目錄下執行java A, 將會得到相應的結果(前提是已經設置
CLASSPATH為"."). 現在, 把A.class移到別的目錄下(例如:"e:\"), 執行java A, 將會拋出java.lang.NoClassDefFoundError異常,原因就是找不到.class文件, 現在你把CLASSPATH增加為:".;e:\"再運行java A, 結果一切正常, java命令通過CLASSPATH找到了.class文件!
3,PATH
你想在任何時候都使用%JAVA_HOME%\bin\java 等來執行java命令嗎, 當然不會, 於是, 你可以選擇把 %JAVA_HOME%\bin添加到PATH路徑下, 這樣, 我們在任何路徑下就可以僅用java來執行命令了.(當你在命令提示符窗口輸入你個代碼時,操作系統會在當前目錄和PATH變數目錄里查找相應的應用程序, 並且執行.
三,java環境變數設置 - 錯誤案例
錯誤:java.lang.NoClassDefFoundError
描述:當 Java 虛擬機或 ClassLoader 實例試圖在類的定義中載入(作為通常方法調用的一部分或者作為使用new 表達式創建的新實例的一部分),但無法找到該類的定義時,拋出此異常。
原因:java環境變數設置錯誤