java - 在 Java 的 Main 之外运行程序

标签 java program-entry-point

我是一名刚开始学习 Java 的计算机科学新学生,目前我使用 IntelliJ 作为我的 IDE。目前,我们不会学习任何疯狂的复杂程序,只是基本的类项目。我的问题是,当我去创建项目时,我别无选择,只能通过 Main 类运行它,即使说明希望类名是特定的。另外,每当我尝试创建一个新类或运行我下载的 java 文件时,即使我关闭了 Main,它仍然会继续运行 Main 类。我有在 VS Code 中创建的文件(我知道这不是最好的选择,这就是我切换到 IntelliJ 的原因),并且我无法运行它们,除非我创建一个全新的项目,复制并粘贴将代码添加到Main文件中,并将类名更改为Main。

我不确定这是否是 Java、IntelliJ 内部的东西,或者只是我还不明白一切是如何工作的,但我希望有人可以帮助我解决这个问题。

这是一个例子。在 src 文件夹中,我有包文件夹,其中包含主 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 幕后的情况。

关于java - 在 Java 的 Main 之外运行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60045183/

相关文章:

java - 导入项目后如何将项目复制到eclipse的工作区?

java - 代码在主方法中运行,但在另一个方法中不运行

java - 如何将 main 方法分离到它自己的类中?

java - 如何将 main 方法放入 try catch block 中?

python - 如何在Python中设置程序?

java - 由于 Linux 中不同的挂载卷,文件移动抛出 IOException

java - 编写一个程序,对 1 到 1000 之间所有能被 13、15 或 17,但不能被 30 整除的整数求和

java - import.io 不加载任何网页

ios - Tesseract libtesseract_all.a(svpaint.o) 中 _main 的重复符号

if __name__ == '__main__' 之后未定义 Python 变量