Update: Below problem is remained until Android Studio 3.4.2
.
I use Android Studio 3.3
and created a scratch
file (File > new > Scratch File > Java
). The IDE created scratch.java
in ~/.AndroidStudio3.3/config/scratches
:
class Scratch {
public static void main(String[] args) {
}
}
But when I run that scratch file ( by pressing green button near to the class name or main
method), I get this error:
Error: Could not find or load main class Scratch
I think that IDE does not make Scratch.class
and so Java
cannot find it. Is there a way for solving this problem and running scratch files from IDE (without using Terminal
)?
Update
I just noticed that this issue was fixed in Android Studio 3.5!
The only way I got this to work (in Android Studio 3.4.1) is this very dirty approach:
Run
> Edit Configurations
> Scratch
Before launch
at the bottom add (+) Run External tool
In External Tools popup press +
and fill in the following Tool Settings
Name: Compile Scratch
Program: javac
Arguments: $FileName$
Working Directory: your scratch file directory
Again in External Tools popup press +
and fill in the following Tool Settings
Name: Run Scratch
Program: java
Arguments: $FileClass$
Working Directory: your scratch file directory
Weirdly this works only if you use the green arrows beside the class/main declaration. If you use the Run button in the menu this also fails.
You will still get the not found error in the Scratch
tab of the run window. But two additional tabs will pop up (one for each external tool). In the Run Scratch
tab you will get your output.
I personally don't like this, But it's the best workaround I came up with.