更新:直到Android Studio 3.4.2,下面的问题仍然存在。

我使用Android Studio 3.3并创建了一个scratch文件(File > new > Scratch File > Java)。 IDE在scratch.java中创建了~/.AndroidStudio3.3/config/scratches:

class Scratch {
    public static void main(String[] args) {

    }
}

但是,当我运行该暂存文件(通过按类名或main方法附近的绿色按钮)时,出现此错误:
Error: Could not find or load main class Scratch

我认为IDE不会生成Scratch.class,因此Java无法找到它。有没有办法解决此问题并从IDE运行暂存文件(不使用Terminal)?

最佳答案

更新

我刚刚注意到,此问题已在Android Studio 3.5中修复!

我使它起作用的唯一方法(在Android Studio 3.4.1中)是这种非常脏的方法:

  • 转到Run> Edit Configurations> Scratch
  • 在底部的Before launch中添加(+)Run External tool
  • 在“外部工具”弹出窗口中,按+并填写以下Tool Settings
    名称:Compile Scratch
    程式:javac
    参数:$FileName$
    工作目录:您的暂存文件目录
  • 按确定
  • 再次在“外部工具”弹出窗口中,按+并填写以下Tool Settings
    名称:Run Scratch
    程式:java
    参数:$FileClass$
    工作目录:您的暂存文件目录
  • 按“确定”并在“运行/调试配置”中应用

  • 奇怪的是,这仅在您使用class/main声明旁边的绿色箭头时有效。如果使用菜单中的“运行”按钮,此操作也会失败。

    您仍会在运行窗口的Scratch选项卡中得到未找到的错误。但是会弹出两个附加选项卡(每个外部工具一个)。在Run Scratch标签中,您将获得输出。

    我个人不喜欢这样,但这是我想到的最好的解决方法。

    09-25 21:56