[英]Javac compilation and execution of 2 java files
該程序用2個文件filter.java編寫-其中是main函數,而ClasifiedWord.java是僅容器類。 我是在eclipse的Windows上寫的,但是想在Linux javac編譯器上進行編譯。
javac filter.java ClasifiedWord.java
運行沒有錯誤,但是當我嘗試運行該程序時:
snowy:Filter$ java filter
Exception in thread "main" java.lang.NoClassDefFoundError: filter
Caused by: java.lang.ClassNotFoundException: filter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: filter. Program will exit.
snowy:Filter$ javac filter.java ClasifiedWord.java
snowy:Filter$ java filter ClasifiedWord
Exception in thread "main" java.lang.NoClassDefFoundError: filter
Caused by: java.lang.ClassNotFoundException: filter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Could not find the main class: filter. Program will exit.
如何運行該程序? 看來編譯還可以。 我懷疑也許我在程序中的文件路徑上犯了一個錯誤...。但是我認為不是這樣嗎? 感謝您的回答!
鍵入以下命令。
java -classpath . filter
如果您只想輸入java filter
,請遵循以下指南。
PS最后一個命令java filter ClasifiedWord
意味着運行程序 filter
並使用字符串 ClasifiedWord
作為參數。
Roland在注釋中是正確的,您應該可以使用java -classpath <folderContainingDotClassFiles> filter
運行它。 另外,您應該將filter.java更改為Filter.java,因為類名(包括包含它們的文件)的標准Java約定是大寫第一個字母。
看起來您的CLASSPATH設置有誤(通常根本不需要此設置,但如果有此設置,則該列表應在當前目錄的列表中包含.
),或者您正在使用軟件包(錯誤地),或兩者。 對於類路徑問題,請參閱其他答案。
如果您正在使用軟件包,即您的文件包含一個package ...;
在開始的一行,您應該根據包結構將源文件放在目錄結構中。 例如,如果您有package example;
,您應該在當前目錄中有一個example
目錄,並在其中有兩個源文件。
然后像這樣調用編譯器和解釋器:
javac example/filter.java example/ClasifiedWord.java
java example.filter
(這假定filter
是主類,否則替換其名稱。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.