Can I compile a java file with a different name than the class?

To answer the question take a look at this example:
Create a file Sample.java

class A 
{ 
   public static void main(String args[])
   { 
      String str[] = {""}; 
      System.out.println("hi"); 
      B.main(str); 
   } 
} 
class B 
{ 
   public static void main(String args[]) 
   { 
     System.out.println("hello");
   }
} 

now you compile it as javac Sample.java and run as java A then output will be

hi 
hello

or you run as java B then output will be
hello

Notice that none of the classes are marked public therefore giving them default access. Files without any public classes have no file naming restrictions.

Leave a Comment