最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 找不到或無法加載主類的修復(fù)方法

 更新時(shí)間:2021年02月02日 10:26:20   作者:sofia  
這篇文章主要介紹了Java 找不到或無法加載主類的修復(fù)方法,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下

有時(shí),當(dāng)我們運(yùn)行Java程序時(shí),我們可能會看到“找不到或無法加載主類”。原因很容易猜測:JVM找不到主類并給出了這個(gè)錯(cuò)誤。但是為什么不能呢?

在本文中,我們將討論找不到主類的可能原因。另外,我們將看看如何修復(fù)它們。

示例程序

我們將從HelloWorld程序開始:

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello world..!!!");
  }
}

現(xiàn)在讓我們編譯它:

$ javac HelloWorld.java

在這里,編譯器將為我們的程序生成一個(gè).class文件。此.class文件將在同一目錄中生成。class文件將與Java程序中給定的類名具有相同的名稱。這個(gè).class文件是可執(zhí)行的。

在下面的部分中,我們將運(yùn)行這個(gè).class文件,并嘗試?yán)斫忮e(cuò)誤“找不到或加載主類”的可能原因。

錯(cuò)誤的類名

要運(yùn)行Java編譯器生成的.class文件,可以使用以下命令:

java <.class filename>

運(yùn)行我們的程序:

$ java helloworld
Error: Could not find or load main class helloworld

是的,它失敗了,錯(cuò)誤是“Could not find or load main class helloworld”即找不到或加載主類helloworld。

如前所述,編譯器將生成.class文件,其名稱與程序中Java類的名稱完全相同。所以在我們的例子中,主類的名稱是HelloWorld,而不是helloworld,要區(qū)分大小寫。

讓我們用正確的方式再試一次:

$ java HelloWorld
Hello world..!!!

這次它成功地運(yùn)行了。

文件擴(kuò)展名
要編譯Java程序,必須提供文件名及其擴(kuò)展名(.java):

$ javac HelloWorld.java

但是要運(yùn)行.class文件,我們需要提供類名,而不是文件名。因此不需要提供.class擴(kuò)展:

$ java HelloWorld.class
Error: Could not find or load main class HelloWorld.class

同樣,讓我們使用正確的類名運(yùn)行程序:

$ java HelloWorld 
Hello world..!!!

Java包名稱

在Java中,我們將類似的類放在一起,稱之為包。

讓我們把HelloWorld類移到com.baeldung包:

package com.baeldung;

public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello world..!!!");
  }
}

現(xiàn)在,讓我們像以前一樣編譯并運(yùn)行更新的HelloWorld程序:

$ java HelloWorld
Error: Could not find or load main class HelloWorld

但我們再次得到錯(cuò)誤“找不到或加載主類HelloWorld”!

讓我們試著理解我們錯(cuò)過了什么。

要運(yùn)行包中的Java類,必須提供其完全限定名。所以在我們的例子中,HelloWorld的完全限定名是:com.baeldung.HelloWorld.

現(xiàn)在,當(dāng)我們創(chuàng)建com.baeldung包時(shí)實(shí)際上我們創(chuàng)建了一個(gè)文件夾結(jié)構(gòu),如:

com/baeldung/HelloWorld.java

首先,讓我們嘗試從com/baeldung目錄運(yùn)行程序:

$ java com.baeldung.HelloWorld
Error: Could not find or load main class com.baeldung.HelloWorld

盡管如此,我們還是無法運(yùn)行我們的程序。

在這里,當(dāng)我們指定完全限定類名時(shí):com.baeldung.HelloWorld,Java試圖找到HelloWorld.class類文件在com/baeldung中,在我們運(yùn)行程序的目錄下。

由于我們已經(jīng)在com/baeldung中,Java無法找到并運(yùn)行HelloWorld程序。

現(xiàn)在,讓我們回到父文件夾并運(yùn)行它:

$ java com.baeldung.HelloWorld
Hello world..!!!

是的,我們再次能夠向世界問好。

類路徑無效

在繼續(xù)之前,讓我們首先了解什么是類路徑classpath——它是當(dāng)前運(yùn)行的JVM可用的一組類。

我們使用classpath變量告訴JVM在文件系統(tǒng)上的何處找到.class文件。

在運(yùn)行程序時(shí),我們可以使用-classpath選項(xiàng)提供類路徑。例子:

java -classpath /my_programs/compiled_classes HelloWorld

在這里,Java將尋找HelloWorld.class類文件在/my_programs/compiled_classes文件夾中,這個(gè)文件夾的名稱是我們剛剛編出來的。默認(rèn)情況下,classpath變量設(shè)置為“.”,表示當(dāng)前目錄。

在上面的部分中,我們更改了目錄以運(yùn)行程序。但是如果我們想從其他文件夾運(yùn)行它呢?這時(shí)classpath變量可以幫助我們。

要從com/baeldung目錄運(yùn)行我們的程序,我們可以簡單地說,我們的類路徑是向上的兩個(gè)目錄—每個(gè)包部分一個(gè):

$ java -claspath ../../ com.baeldung.HelloWorld
Hello world..!!!

這里,“…”表示父目錄。在本例中,“../../”表示包層次結(jié)構(gòu)的頂部。

以上就是Java 找不到或無法加載主類的修復(fù)方法的詳細(xì)內(nèi)容,更多關(guān)于Java 找不到或無法加載主類的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java中常見的陷阱題及答案

    Java中常見的陷阱題及答案

    在電腦里找到一份當(dāng)時(shí)學(xué)習(xí)JAVA時(shí)的筆記,看到一些現(xiàn)在已經(jīng)遺忘的細(xì)節(jié)。稍微整理了幾個(gè),發(fā)出來與大家分享。這篇文章主要介紹了Java中常見的陷阱題及答案,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • Java Stream流知識總結(jié)

    Java Stream流知識總結(jié)

    這篇文章主要介紹了Java Stream流的相關(guān)知識,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-06-06
  • SpringBoot Controller返回圖片的三種方式

    SpringBoot Controller返回圖片的三種方式

    在互聯(lián)網(wǎng)的世界里,圖片無處不在,它們是信息傳遞的重要媒介,也是視覺盛宴的一部分,而在Spring Boot項(xiàng)目中,如何優(yōu)雅地處理和返回圖片數(shù)據(jù),則成為了開發(fā)者們不得不面對的問題,今天,就讓我們一起來探索Spring Boot Controller的神奇轉(zhuǎn)換,需要的朋友可以參考下
    2024-07-07
  • MybatisPlus 不修改全局策略和字段注解如何將字段更新為null

    MybatisPlus 不修改全局策略和字段注解如何將字段更新為null

    這篇文章主要介紹了MybatisPlus 不修改全局策略和字段注解如何將字段更新為null,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-04-04
  • Springboot集成JWT實(shí)現(xiàn)登錄注冊的示例代碼

    Springboot集成JWT實(shí)現(xiàn)登錄注冊的示例代碼

    本文主要介紹了Springboot集成JWT實(shí)現(xiàn)登錄注冊的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • SpringBoot 攔截器妙用你真的了解嗎

    SpringBoot 攔截器妙用你真的了解嗎

    關(guān)于springboot攔截器很多朋友掌握的不是多好,今天抽空給大家普及下這方面的知識,SpringBoot 攔截器妙用,讓你一個(gè)人開發(fā)整個(gè)系統(tǒng)的鑒權(quán)模塊,快來跟小編一起學(xué)習(xí)下吧
    2021-07-07
  • 解決IDEA中下載free maven plugin插件無效的問題

    解決IDEA中下載free maven plugin插件無效的問題

    這篇文章主要介紹了解決IDEA中下載free maven plugin插件無效的問題,本文通過圖文并茂的形式給大家分享解決方案,供大家參考,需要的朋友可以參考下
    2020-11-11
  • SpringCloud-Gateway網(wǎng)關(guān)的使用實(shí)例教程

    SpringCloud-Gateway網(wǎng)關(guān)的使用實(shí)例教程

    Gateway網(wǎng)關(guān)在微服務(wù)架構(gòu)中扮演了不可或缺的角色,通過集中化管理、智能路由和強(qiáng)大的過濾器機(jī)制,為構(gòu)建高效、可擴(kuò)展的微服務(wù)系統(tǒng)提供了有力支持,這篇文章主要介紹了SpringCloud-Gateway網(wǎng)關(guān)的使用,需要的朋友可以參考下
    2024-03-03
  • 八種Java中的基本數(shù)據(jù)類型詳解

    八種Java中的基本數(shù)據(jù)類型詳解

    在Java編程中,基本數(shù)據(jù)類型是必不可少的一部分,對于初學(xué)者而言,理解這些基本數(shù)據(jù)類型是非常重要的,下面我們就來學(xué)習(xí)一下Java中的八種基本數(shù)據(jù)類型,以及它們的使用方法吧
    2023-08-08
  • Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    Eclipse創(chuàng)建java程序可執(zhí)行jar包教程

    這篇文章主要為大家分享了Eclipse創(chuàng)建java程序可執(zhí)行jar包教程,具有一定的實(shí)用性和參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05

最新評論

高邑县| 玉龙| 青神县| 嘉祥县| 应用必备| 江源县| 监利县| 罗定市| 米泉市| 台北市| 乌苏市| 拜城县| 左贡县| 阿坝县| 宜昌市| 黎平县| 永平县| 眉山市| 临邑县| 锡林浩特市| 松原市| 军事| 鲜城| 绿春县| 龙南县| 教育| 浦县| 阜平县| 资中县| 兰考县| 微博| 醴陵市| 金秀| 年辖:市辖区| 丽江市| 新昌县| 金川县| 游戏| 巫山县| 高邑县| 启东市|