導航:首頁 > 源碼編譯 > 編譯的類中找不到主方法錯誤提示

編譯的類中找不到主方法錯誤提示

發布時間:2022-09-18 03:38:53

java 編譯成功,運行class文件出現「找不到或無法載入主類」,什麼原因

程序本身沒錯。原因可能有:
1、環境變數配置問題
解決辦法:測試配置,在cmd下輸入 java -version,如果有以下相似的輸出,說明配置沒問題
C:\Documents and Settings\Administrator>java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Client VM (build 17.0-b16, mixed mode, sharing)

2、編譯錯誤。
你文件名要和類名相同。保存為Hello.java ,編譯:javac Hello.java。
運行時不要加後綴 直接 java Hello

⑵ 編譯java程序時老是顯示找不到主類是怎麼回事

你貼出的程序有些問題,
new Employee[3],後少分號。
GregortanCalendar calendar,類寫錯了。
hirDay=calendar.getTime();,hirDay寫錯了。
修改後的程序是這樣。可以運行。
我很納悶你之間的程序能編譯通過?
import java.util.Date;
import java.util.GregorianCalendar;
public class EmployeeTest
{
public static void main(String[] args)
{
Employee[] staff =new Employee[3];

staff[0]=new Employee("Carl cracker ",75000,1987,12,15);
staff[1]=new Employee("Harry cracker ",50000,1989,10,1);
staff[2]=new Employee("TONY cracker ",40000,1990,3,15);
for (Employee e:staff)
e.raiseSalary(5);
for (Employee e:staff)
System.out.println("name"+e.getName()+",salary="+e.getSalary()+",hireDay="+e.getHireDay());

}
}

class Employee
{
public Employee(String n,double s,int year,int month,int day)
{
name=n;
salary=s;
GregorianCalendar calendar=new GregorianCalendar(year,month-1,day);
hireDay=calendar.getTime();
}
public String getName()
{return name;
}
public double getSalary()
{
return salary;
}
public Date getHireDay()
{
return hireDay;

}
public void raiseSalary(double byPrecent)
{

double raise=salary*byPrecent/100;
salary+=raise;
}
private String name;
private double salary;
private Date hireDay;}

⑶ 我java 編譯成功, 運行程序的時候卻出現 找不到或無法載入主類的錯誤。


classpath是網上看的配置的

⑷ 類中找不到main方法

說明當前類中沒有運行入口(main方法)。
解釋:java運行中規定main方法作為java項目的入口之一,也就是說如果運行的是java類,但是類中沒有main方法,此時就會報此錯錯誤。
解決辦法:在類中創建main方法,或者是去有main方法的類中執行。

⑸ 錯誤: 找不到或無法載入主類 ArrayListMagnet

解決 :提示錯誤「找不到或者無法載入主類」 的一個方法

1、可能是你的項目的Java Build Path中的Libraries中有個jar包的Source attachment指為了一個不可用的jar包。
2、jdk1.8不需要配置環境變數classpath
3、以下原理理解了你就可以自行解決上述錯誤。
(1)cmd運行java文件,請把文件里的第一行"package A;"注釋掉;
假設:Hello.java位於C:/work/ppp/A下
在工作目錄"C:/work/ppp/A" 下輸入:

javac Hello.java

java Hello
則 編譯運行成功。
(2)若在java文件中加上了package A;則在工作目錄"C:/work/ppp/A"下輸入:
javac Hello.java
java -cp .;(此處為文件路徑) A.Hello
解釋:-cp 為一個選項,也可寫為-classpath
.表示當前目錄"C:/work/ppp/A"
;表示分隔符
(此處為文件路徑) 在本例中為"C:/work/ppp"
A.Hello:因為java文件里第一行有"package A",所以此處必須為A.Hello

顯然,在當前目錄"C:/work/ppp/A"中找不到A.Hello,在"C:/work/ppp"中找到了A.Hello,所以上述兩行將編譯執行成功。

⑹ java編譯通過,為什麼運行卻提示找不到或無法載入主類

java編譯通過說明你的程序沒有語法錯誤(也就是javac的過程 javac java文件)
運行時java虛擬機運行程序(也就是java class文件)
找不到主類,說明你的java文件中沒有實現如下的方法
/**
*該方法是程序啟動的入口,沒有該方法,java虛擬機找不到程序的入口,沒辦法啟動程序
*/
public static void main(String[] args){
//這里是你的具體邏輯操作
}

⑺ java編譯通過,為什麼運行卻提示找不到或無法載入主類

入門就遇到這樣的問題,環境變數按網上說的配好了,直接java 和 javac都有提示出來,說明沒問題了,

做了一個簡單java,放在e盤根目錄下,在c:下操作javac該java文件成功了,但用java 該class時卻提示「找不到或無法載入主類」 ,忙活了半天,找了些資料,發現其實很簡單,不是語句錯誤,是路徑問題classpath的問題。

主要是以下兩點要注意:

1、在classpath的最前面要加一個本目錄路徑,用.表示,由於後面還有java的dt和tools兩個路徑,所以.後要加;進行分隔表示。

2、更為重要的是,在cmd下運行javac 和java的時候,必須在該java文件的目錄下運行,這樣生成的class也在該目錄下,java的時候也會第一個就在本目錄下找class文件,就不 會提示找不到了。這個cmd運行路徑由於一般不太注意,輸入cmd就會直接到c:\個人文件夾下,而一般的java文件會用其它軟體編寫,放在選定的路徑 下,這兩個路徑很少能主動重合,一運行當然找不到了,但是javac能認到,不知為什麼java就提示找不到?這點有點奇怪。網上各種解決方法里很少注意 到其實就是這個小問題造成的找不到類,都想當然的以為是在java源文件路徑下運行java,那當然就找不到基本問題所在了。

如果1、2都做了還是沒變化,那就是該計算機改了環境變數後需要重新啟動下讓新的設置生效,重啟下即可。

⑻ JAVA編譯提示缺少主函數

把你的包設置一下,把eclipsel路徑設置一下就好了

⑼ java運行顯示「找不到或無法載入主類」!

該如何解決呢?解決辦法如下:

1.由於是在運行階段出現的問題,那麼可能是環境變數配置不當的問題,即可能是classpath路徑配置錯誤,而導致.class文件無法載入。那麼此時你可以檢查是否配置好classpath路徑,一般來說classpath路徑配置如下:

.;%java_home%lib;%java_home%lib ools.jar; (注意前面的 . 以及 ; 缺一不可)

其中.表示當前路徑,;表示分隔符。

2.如果你試過了很多次,classpath也配置對了,依舊出現這個錯誤,注意你使用的測試代碼,是否在某一個包名的下面;

比如說如下測試代碼:

在文件所在的當前目錄下,運行javac TestPlusPlus.java編譯成功,生成TestPlusPlus.class文件,這個時

候,你用javaTestPlusPlus想運行程序,總會出現」找不到或無法載入主類「的錯誤。這個時候要注意,

之所以找不到,是因為TestPlusPlus在HelloWorld包名的下面。

解決辦法:

1.去掉 」packageHelloWorld;「 重新用javac 編譯TestPlusPlus.java,再運行javaTestPlusPlus就可以了。

2.新建一個包名一樣的文件夾,在本例中,為建立一個HelloWorld的文件夾,把TestPlusPlus.java文件移到該目錄下。

然後在HelloWorld文件夾的平級下,打開DOS命令窗口,運行javacHelloWorld/TestPlusPlus.java編譯程序,

運行javaHelloWorld/TestPlusPlus(或者javaHelloWorld.TestPlusPlus也可以),則可以運行含有包名的java程序。

注意:包名不要含有'.'(點),' '(空格)等特殊符號,這樣的話命令行無法判斷包名與java程序名的分割點在哪裡,

從而還是找到或者無法載入主類。

原理說明:

java程序運行class文件,對於有包名的類,java把包名當成文件夾處理."包名+類名"相當於"文件夾目錄+類名"來尋找類。

⑽ 我設置好了java環境變數,編譯也通過了,就是運行不了,命令提示符顯示 錯誤:找不到或無法載入主類

最好把你的源碼貼出來,我推測有以下兩個原因:
1、源代碼中沒有main方法;
2、源代碼中定義了package(包),那麼在編譯後就需要將class文件放入包名對應的文件夾下,例如我定義的包名是com.demo,源文件W.java在D:/test/下,那麼我們在命令行進入test目錄後執行javac W.java,執行完會在當前目錄下生成W.class文件,此時直接接著執行
java W 肯定會報錯,就是加上包名也不行(java com.demo.W),我們需要做的是在當前目錄下新建一個com文件夾,然後在com下再新建demo文件夾,接著把W.class文件移到demo文件夾下,現在我們再執行java com.demo.W 就不會報錯了。

閱讀全文

與編譯的類中找不到主方法錯誤提示相關的資料

熱點內容
web應用安全pdf 瀏覽:47
linuxintel網卡驅動下載 瀏覽:217
資源解壓後怎麼刪除 瀏覽:868
編程之美15種演算法 瀏覽:147
java的圖形用戶界面設計 瀏覽:769
算數游戲源碼 瀏覽:999
壓縮機工作聲音判斷 瀏覽:985
事業單位程序員 瀏覽:506
易語言取相似顏色源碼 瀏覽:773
pyodbclinux 瀏覽:585
vivo為什麼把伺服器沉到深海 瀏覽:460
程序員能為電商做什麼 瀏覽:401
騰訊直充qq號加密碼 瀏覽:140
qt搭建msvc編譯器環境 瀏覽:338
單片機晶振壞了會不會工作不穩定 瀏覽:770
天天影迷APP顯示連接伺服器失敗怎麼回事 瀏覽:961
鋼鐵命令同盟第七關怎麼過 瀏覽:7
android底部控制項彈出 瀏覽:43
為程序員而自豪 瀏覽:583
可以進行c語言編譯的文件名 瀏覽:384