I'm trying to run .class file from command line. It works when I manually move to the directory it's stored in, but when I try something like this:
java C:\Peter\Michael\Lazarus\Main
it says it can't find the main class. Is there any solution to this other than making a .jar file (I know that .jar is the best solution, but at this moment isn't the one I'm looking for)?
The Java application launcher (a.k.a java.exe
or simply java
) expects a class name as its argument, so you can't pass it a file name (especially not one that includes a directory.
You can tell it where to look for that class by using the -classpath
option (or its short form -cp
) however:
java -classpath C:\Peter\Michael\Lazarus\ Main
Assuming that Main.class
does not have a package declaration:
java -cp C:\Peter\Michael\Lazarus\ Main
Java looks for classes in a "classpath", which can be set on the command line via the -cp
option.
I just had the same issue, I tried running java hello.class
, this is wrong.
The command should be java hello
.
Do not include the file extension. It is looking for a class file, and will add the name on its own.
So running 'java hello.class
' will tell it to go looking for 'hello.class.class
' file.
Try this:
java -cp C:\Peter\Michael\Lazarus Main
You need to define the classpath.