1

Hi guys and thanks for trying I am using the JExcelApi to create an excel file from a cmd prompt with a java file.

The code works perfectly within eclipse with the right build paths etc. When i try it in the cmd prompt the javac works then when i execute it i get the Could not find or load main class GenerateExcel

This is the GenerateExcel Java file

  import java.io.*;
  import jxl.*;
  import java.util.*;
  import jxl.Workbook;
  import jxl.write.DateFormat;
  import jxl.write.Number;

  import jxl.write.*;
  import java.text.SimpleDateFormat;

  public class  GenerateExcel
  {
    public static void main(String[] args) 
    {
      try
      {
        String filename = "excelTEST.xls";
        WorkbookSettings ws = new WorkbookSettings();
        ws.setLocale(new Locale("en", "EN"));
        WritableWorkbook workbook = 
          Workbook.createWorkbook(new File(filename), ws);
        WritableSheet s = workbook.createSheet("Sheet1", 0);
        WritableSheet s1 = workbook.createSheet("Sheet1", 0);
        writeDataSheet(s);
        writeImageSheet(s1);
        workbook.write();
        workbook.close();      
      }
      catch (IOException e)
      {
        e.printStackTrace();
      }
      catch (WriteException e)
      {
        e.printStackTrace();
      }
    }

    private static void writeDataSheet(WritableSheet s) 
      throws WriteException
    {

      /* Format the Font */
      WritableFont wf = new WritableFont(WritableFont.ARIAL, 
        10, WritableFont.BOLD);
      WritableCellFormat cf = new WritableCellFormat(wf);
      cf.setWrap(true);

      /* Creates Label and writes date to one cell of sheet*/
      Label l = new Label(0,0,"Date",cf);
      s.addCell(l);
      WritableCellFormat cf1 = 
        new WritableCellFormat(DateFormats.FORMAT9);

      DateTime dt = 
        new DateTime(0,1,new Date(), cf1, DateTime.GMT);

      s.addCell(dt);

      /* Creates Label and writes float number to one cell of sheet*/
      l = new Label(2,0,"Float", cf);
      s.addCell(l);
      WritableCellFormat cf2 = new WritableCellFormat(NumberFormats.FLOAT);
      Number n = new Number(2,1,3.1415926535,cf2);
      s.addCell(n);

      n = new Number(2,2,-3.1415926535, cf2);
      s.addCell(n);

      /* Creates Label and writes float number upto 3 
         decimal to one cell of sheet */
      l = new Label(3,0,"3dps",cf);
      s.addCell(l);
      NumberFormat dp3 = new NumberFormat("#.###");
      WritableCellFormat dp3cell = new WritableCellFormat(dp3);
      n = new Number(3,1,3.1415926535,dp3cell);
      s.addCell(n);

      /* Creates Label and adds 2 cells of sheet*/
      l = new Label(4, 0, "Add 2 cells",cf);
      s.addCell(l);
      n = new Number(4,1,10);
      s.addCell(n);
      n = new Number(4,2,16);
      s.addCell(n);
      Formula f = new Formula(4,3, "E1+E2");
      s.addCell(f);

      /* Creates Label and multipies value of one cell of sheet by 2*/
      l = new Label(5,0, "Multipy by 2",cf);
      s.addCell(l);
      n = new Number(5,1,10);
      s.addCell(n);
      f = new Formula(5,2, "F1 * 3");
      s.addCell(f);

      /* Creates Label and divide value of one cell of sheet by 2.5 */
      l = new Label(6,0, "Divide",cf);
      s.addCell(l);
      n = new Number(6,1, 12);
      s.addCell(n);
      f = new Formula(6,2, "F1/2.5");
      s.addCell(f);
    }

    private static void writeImageSheet(WritableSheet s) 
      throws WriteException
    {
      /* Creates Label and writes image to one cell of sheet*/    
      Label l = new Label(0, 0, "Image");
      s.addCell(l);
      WritableImage wi = new WritableImage(0, 3, 5, 7, new File("C:/3DWIP/out/example.png"));
      s.addImage(wi);

      /* Creates Label and writes hyperlink to one cell of sheet*/
      l = new Label(0,15, "HYPERLINK");
      s.addCell(l);
      Formula f = new Formula(1, 15, 
        "HYPERLINK(\"http://www.andykhan.com/jexcelapi\", "+
        "\"JExcelApi Home Page\")");
      s.addCell(f);

      }
     }

the JExcelApi jar called jxl.jar is in c:/3DWIP/src/api

 cd..
 cd 3DWIP
 cd src

so finally I'M in

 C:\3DWIP\src

where my GenerateExcel.java file is

i compile it with the cmd

 javac -classpath ./api/* GenerateExcel.java

it goes fine, then when i execute it with the cmd:

 java -classpath ./api/* GenerateExcel

Then i get the error

 Could not find or load main class GenerateExcel

Thank you guys

Lethal420
  • 73
  • 1
  • 12

2 Answers2

1

-classpath overrides your current classpath.

Add location of the directory that contains the class which has main() method in it ,to the path variable in the Environment variables

AsSiDe
  • 1,826
  • 2
  • 15
  • 24
  • 1
    it worked with this: java -classpath ./api/*;..C:\3DWIP; GenerateExcel – Lethal420 Oct 30 '14 at 18:32
  • As you said the classpath was overwritten, however just adding the location of the directory that contains the class which has main() method in it ,to the path variable in the Environment variables didn – Lethal420 Oct 31 '14 at 13:46
0

you have to include package name

java -classpath ./api/* writingexcelfile.GenerateExcel
Suresh Sajja
  • 552
  • 3
  • 8
  • the package was only being used by eclipse, i deleted the line for the script and works as I stated ib the other post. – Lethal420 Oct 31 '14 at 13:43