java - 在 Java 上运行 Main 之外的程序
问题描述
我是一名刚开始使用 Java 的 CS 新学生,目前我正在使用 IntelliJ 作为我的 IDE。目前,我们没有讨论任何疯狂复杂的程序,只是课堂项目的基本内容。我的问题是,当我去创建我的项目时,我别无选择,只能通过 Main 类运行它,即使说明希望类名是特定的。此外,每当我尝试创建新类或运行已下载的 java 文件时,它仍会继续运行 Main 类,即使我已关闭 Main。我有我在 VS Code 中创建的文件(我知道这不是最好的选择,这就是我切换到 IntelliJ 的原因),除非我创建一个全新的项目,否则我无法运行它们,复制并粘贴将代码写入 Main 文件,并将类名更改为 Main。
我不确定这是否是 Java、IntelliJ 内部的东西,或者只是我还不了解一切是如何工作的,但我希望有人能帮助我解决这个问题。
这是一个例子。在 src 文件夹中,我有 package 文件夹,其中包含 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
然后使用命令运行.class
文件来运行程序。java
有很多关于如何通过 CLI 运行程序的文章。我建议首先使用 CLI 以了解幕后 JVM 发生了什么。
推荐阅读
- angular - 损坏的文件 - Angular 项目中 node_modules 中的 .xml2js.DELETE/package,json
- c++ - istringstreams 或 stringstreams 通常在 C++ 中默认初始化为什么?
- android - 使用插页式广告格式作为奖励广告(Facebook Audience Network)
- c++ - 向 GDI+ 位图添加一定百分比的噪点失败
- html - 根据浏览器的宽度大小,网格区域可能不适合
- c# - 由于代码中的格式错误,我无法使用复选框
- android - 屏幕关闭时前台应用程序被杀死
- r - 为什么我的 R Shiny 应用程序会不一致地抛出 MIME 错误?
- python-3.x - IndexError:使用 discord.py 查找提及时列表索引超出范围
- python - WSL2 Ubuntu 18.04 - 性能真的很奇怪