簡體   English   中英

在 Java 上運行 Main 之外的程序

[英]Running Programs outside of Main on Java

我是一名剛開始使用 Java 的 CS 新學生,目前我使用 IntelliJ 作為我的 IDE。 目前,我們不討論任何瘋狂的復雜程序,只是課堂項目的基本內容。 我的問題是,當我去創建我的項目時,我別無選擇,只能通過 Main 類運行它,即使說明希望類名是特定的。 此外,每當我嘗試創建一個新類或運行我下載的 java 文件時,它仍然會繼續運行 Main 類,即使我關閉了 Main。 我有我在 VS Code 中創建的文件(我知道這不是最好的選擇,這就是我切換到 IntelliJ 的原因),除非我創建一個全新的項目,否則我無法運行它們,復制並粘貼將代碼寫入 Main 文件,並將類名更改為 Main。

我不確定這是否是 Java、IntelliJ 內部的東西,或者只是我不明白一切是如何工作的,但我希望有人能幫我解決這個問題。

這是一個例子。 在 src 文件夾中,我有包文件夾,其中包含 Main java 文件以及我嘗試運行的單獨文件。 主要也是空的。

package com.ethan;

import java.util.Scanner;


public class Exercise02_19 {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);

        //Enter 3 points
        System.out.println("Enter the 3 points for a triangle: ");

        //Point A
        double x1 = input.nextDouble();
        double y1 = input.nextDouble();

        //Point B
        double x2 = input.nextDouble();
        double y2 = input.nextDouble();

        //Point C
        double x3 = input.nextDouble();
        double y3 = input.nextDouble();


        //Find the sides and area

        double side1 = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
        double side2 = Math.sqrt((x1 - x3) * (x1 - x3) + (y1 - y3) * (y1 - y3));
        double side3 = Math.sqrt((x3 - x2) * (x3 - x2) + (y3 - y2) * (y3 - y2));

        double s = (side1 + side2 + side3)/2;
        double area = Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));

        System.out.println("The area of the triangle is: " + area);

    }
}

謝謝你。

在編輯器或 IDEA 上打開您的文件並不意味着它們已關閉或打開以供運行。 他們只是開放修改。

為了運行 Java 程序,您需要一個 main 方法(除非您使用的是在這種情況下對您隱藏的框架)。 一切都通過 main 運行,所以如果你想使用自定義類,你必須通過 main 調用它。

main方法看起來像這樣

public static void main(String[] args){
     // your code
}

您可以通過使用 IDEA、設置 JDK 或使用javac編譯它然后使用java命令運行.class文件來運行該程序。 有很多關於如何通過 CLI 運行程序的文章。 我建議首先使用 CLI 以了解幕后 JVM 上發生的事情。

它不依賴於類名,而是依賴於作為代碼執行入口點的 main 方法。

這個方法必須在一個類中定義,看起來完全像這樣:

public static void main(String[] args){
// code goes here
}

確保此方法在您的應用程序中只存在一次。

要在 IntelliJ 中快速創建此方法,請鍵入psvm ,然后使用 Tab。

用於調用 JVM 的類的名稱決定了在定義多個 main 方法時調用哪個 main 方法。

@efan - Alexis Pavlidis 是正確的。

詳細說明:

  1. 在 Java 中,每個“程序”都由一個或多個“”組成。 在您的示例中,該類恰好被稱為Exercise02_19

  2. 每個程序都必須“從某處開始”。 這稱為入口點

  3. 在 Java 中,入口點是一個帶有簽名的方法public static void main(String[] args)

  4. 在 Java 中,許多其他語言不同,每個類都可能有自己的main() 您必須在運行時選擇哪個入口點。 使用您的 IDE 或命令行參數。

    在您的情況下,您選擇了類Exercise02_19main()方法。

  5. 正如亞歷克西斯·帕夫利迪斯所說:

    沒有 Main 類,Java 應用程序的唯一要求是 main 方法。 所以你的類可以隨意命名。

Java 程序總是main()方法開始。 你可以把它想象成你的切入點。

如果要創建單獨的類,則必須從 main 方法中調用它們。 下面是一個例子:

主程序

public class Main {

    public static void main(String[] args) {
        MyTestClass myInstanceOfIt = new MyTestClass();
        myInstanceOfIt.doSomething();
    }
}

我的測試類.java

public class MyTestClass {

    public void doSomething() {
        //do something here
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM