Question

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)?

Was it helpful?

Solution

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

OTHER TIPS

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top