Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在IntelliJ中运行/调试单个.java文件?_Java_Intellij Idea - Fatal编程技术网

如何在IntelliJ中运行/调试单个.java文件?

如何在IntelliJ中运行/调试单个.java文件?,java,intellij-idea,Java,Intellij Idea,我有一个简单的java文件,如下所示,打印到控制台: import java.io.*; import java.lang.reflect.*; import java.lang.Math.*; public class CodingPrep { public static void main(String[] args) { System.out.println("Hello World"); } } 我正试图通过IntelliJ运行这个文件,而不创建

我有一个简单的java文件,如下所示,打印到控制台:

import java.io.*;
import java.lang.reflect.*;
import java.lang.Math.*;

public class CodingPrep {

    public static void main(String[] args) {

        System.out.println("Hello World");

    }
}
我正试图通过IntelliJ运行这个文件,而不创建任何项目等(这是有原因的,但是这里的讨论已经超出了范围)。我该怎么做

到目前为止,我刚刚安装了IntelliJ,并将JavaJDK与之链接。当我尝试运行或调试此文件时,我会被重新路由到“编辑配置”框,其中会显示一个错误:“未指定模块”

请注意,我的代码实际上不仅仅是一个“Hello World”,但是它都是基于命令提示符的,在这里,我必须将参数传递给对可执行文件的调用,还必须在程序运行时提供输入(通过
ReadLine

我需要一个IDE,这样我就可以使用断点等调试我的java文件


我该怎么办?

IDEA不可能做到这一点,因为为了运行一个类,它需要一些基本配置,比如JDK、类路径、输出路径等

因此,您必须创建和配置一个模块,并将类文件放入其中。
然后,当运行它时,IDE本身将打开一个命令提示符终端,允许您输入输入。

要解决此错误:“未指定模块”。在打开的
编辑配置
窗口中主类旁边的文本框中写下您的类名

在这里,您将CodingPrep放在打开的
编辑配置
窗口中Main class:旁边的文本框中


它将像魅力一样工作。

如果您已经打开了其他项目,那么默认情况下,新的单个java文件将被视为现有项目的一部分

要运行单个java文件(在您的例子中是CodingPrep.java),您必须打开编辑配置,然后在那里为java Scratch添加一个新配置,其中提供以下项目:

  • 临时文件的路径(
    /home/user/path/to/CodingPrep.java
  • 主类(
    CodingPrep.java
  • 工作目录
  • 此外,您还可以使用名称
    CodingPrep
    或任何其他名称保存此配置
申请并保存,您就可以开始了。

从命令提示符编译单个java文件时,不需要“项目”,编译器只生成一个简单的类文件。为什么这里不能这样做?为什么需要一个“项目”?嗯,我和这篇文章的作者有完全相同的问题。很遗憾,您的解决方案不起作用——当我开始键入类名时,它会说“无法解析符号”。。。还有其他办法解决这个问题吗?@Rotkiv,在Main class旁边的文本框中写下你的类名,我的意思是有
Main()
method的类名。遗憾的是,这似乎对我不起作用,除非我仍然没有领会你的意思。