2014-10-30 41 views
1

嗨,大家好,感谢您尝试 我正在使用JExcelApi从cmd提示符创建一个带有java文件的excel文件。无法找到或加载主类cmd,它在Eclipse中正常工作,构建路径似乎没问题

代码工作完全Eclipse中使用正确的构建路径等 当我在命令提示符中的javac尝试它的工作原理,然后当我执行它,我得到无法找到或加载主类GenerateExcel

这是GenerateExcel的Java文件

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

     } 
    } 

称为jxl.jar的罐子了JExcelApi在C:/ 3DWIP/src目录/ API

cd.. 
cd 3DWIP 
cd src 

所以最后我在

C:\3DWIP\src 

在我的GenerateExcel.java文件

我与CMD编译

javac -classpath ./api/* GenerateExcel.java 

它去罚款,然后当我用CMD执行它:

java -classpath ./api/* GenerateExcel 

然后我得到的错误

Could not find or load main class GenerateExcel 

谢谢你们

回答

1

-classpath覆盖您当前的类路径。包含具有在它的main()方法的类,以路径变量在环境变量的目录的

添加位置

+1

它与此一起工作:java -classpath ./api/*;..C:\3DWIP; GenerateExcel – Lethal420 2014-10-30 18:32:57

+0

正如你所说的,类路径被覆盖,但只是将包含main()方法的类的目录的位置添加到环境变量中的路径变量中,我不得不使用多路径语法路径将它添加到我的java cmd中; .. path2; .. path3; JavaFileContainingMain – Lethal420 2014-10-31 13:46:23

0

,你必须包含包名

java -classpath ./api/* writingexcelfile.GenerateExcel 
+0

没有工作:(我尝试。 – Lethal420 2014-10-30 17:41:49

+0

包仅正在使用eclipse中,我删除了脚本的行,并按照我在其他帖子中所说的那样工作。 – Lethal420 2014-10-31 13:43:57

相关问题