Search code examples
javaseleniumcommand-promptusing

Java, Selenium; Exception thrown when compiling code


public class MainClass {

    public static void main(String [] args) throws ClassNotFoundException{
            //String[] xyz = {"Client1"};
            List<XmlSuite> suites = new ArrayList<XmlSuite>(); 
            XmlSuite suite=new XmlSuite();

            suite.setName("Demo");

            XmlTest test=new XmlTest(suite);
            List<String> groups=new ArrayList<String>();
            for(String arg:args){
                groups.add(arg);
            }
            List<XmlClass> classes =new ArrayList<XmlClass>();
            System.out.println(Class.forName("TrailAndTest.TestClass"));
            classes.add(new XmlClass(Class.forName("TrailAndTest.TestClass")));

            test.setXmlClasses(classes);
            test.setIncludedGroups(groups);

            suites.add(suite);  

            TestNG tng = new TestNG();
            tng.setXmlSuites(suites);

            tng.run();

        }

}

In my code I have written public class is defined "public class Mainclass" and file is saved with name MainClass.java When I try to execute this code from command prompt i get error:

  1. C:\Selenium\Code\Test\src\TrailAndTest\Mainclass.java:13: class MainClass is pub lic, should be declared in a file named MainClass.java public class MainClass ^ 1 error

Actions performed by me:

C:\Selenium\Code\Test>set path=%path%;"C:\Program Files\Java\jdk1.5.0_22\bin"

C:\Selenium\Code\Test>set
CLASSPATh="C:\Selenium\Code\Test\bin;C:\Selenium\Code\
Test\Jars\selenium-2.25.0\libs\commons-logging-1.1.1.jar;C:\Selenium\Eclipse\ecl
ipse-jee-indigo-win32-x86_64\eclipse\plugins\org.testng.eclipse_6.7.0.20120808_0
858\libtesting.jar;C:\Selenium\Eclipse\eclipse-jee-indigo-win32-x86_64\eclipse\p
lugins\org.eclipse.wb.runtime.lib_1.5.0.r37x201206111201\lib\cglib-nodep-2.2.jar
;C:\Selenium\ExternalJar\selenium-server-standalone-2.21.0.jar;"

C:\Selenium\Code\Test>javac -sourcepath "C:\Selenium\Code\Test\src" 
"C:\Seleniu m\Code\Test\src\TrailAndTest\Mainclass.java" -d
"C:\Selenium\Code\Test\bin"
C:\Selenium\Code\Test\src\TrailAndTest\Mainclass.java:13: class
MainClass is pub lic, should be declared in a file named
MainClass.java public class MainClass 
             ^ 1 error

C:\Selenium\Code\Test>

Solution

  • The class and file names are case sensitive. Rename the file to "MainClass.java" with a capital C to match the class name.