2011-06-17 39 views
4

我有派,而我执行下面的错误邮件一个java代码显示错误而执行在命令提示符

.\SendEmail.java:5: package javax.mail.Message does not exist 
import javax.mail.Message.RecipientType; 
         ^
.\SendEmail.java:6: package javax.mail.internet does not exist 
import javax.mail.internet.AddressException; 
         ^
.\SendEmail.java:7: package javax.mail.internet does not exist 
import javax.mail.internet.InternetAddress; 
         ^
.\SendEmail.java:8: package javax.mail.internet does not exist 
import javax.mail.internet.MimeMessage; 

和另一个Java类为数据库写一些数值,在下面错误将显示

      ^
.\WriteHelper.java:34: cannot find symbol 
symbol : class WorkbookSettings 
location: class WriteHelper 
       WorkbookSettings wbSettings = new WorkbookSettings(); 
       ^
.\WriteHelper.java:34: cannot find symbol 
symbol : class WorkbookSettings 
location: class WriteHelper 
       WorkbookSettings wbSettings = new WorkbookSettings(); 
               ^
.\WriteHelper.java:38: cannot find symbol 
symbol : class WritableWorkbook 
location: class WriteHelper 
       WritableWorkbook workbook = Workbook.createWorkbook(file, wbSett 
ings); 
       ^
.\WriteHelper.java:38: cannot find symbol 
symbol : variable Workbook 
location: class WriteHelper 
       WritableWorkbook workbook = Workbook.createWorkbook(file, wbSett 
ings); 
              ^
.\WriteHelper.java:40: cannot find symbol 
symbol : class WritableSheet 
location: class WriteHelper 
       WritableSheet excelSheet = workbook.getSheet(0); 
       ^
.\WriteHelper.java:51: cannot find symbol 
symbol : class WritableFont 
location: class WriteHelper 
       WritableFont times10pt = new WritableFont(WritableFont.TIMES, 10 
); 
       ^
.\WriteHelper.java:51: cannot find symbol 
symbol : class WritableFont 
location: class WriteHelper 
       WritableFont times10pt = new WritableFont(WritableFont.TIMES, 10 
); 
              ^
.\WriteHelper.java:51: cannot find symbol 
symbol : variable WritableFont 
location: class WriteHelper 
       WritableFont times10pt = new WritableFont(WritableFont.TIMES, 10 
); 
                 ^
.\WriteHelper.java:53: cannot find symbol 
symbol : class WritableCellFormat 
location: class WriteHelper 
       times = new WritableCellFormat(times10pt); 
          ^
.\WriteHelper.java:58: cannot find symbol 
symbol : class WritableFont 
location: class WriteHelper 
       WritableFont times10ptBoldUnderline = new WritableFont(
       ^
.\WriteHelper.java:58: cannot find symbol 
symbol : class WritableFont 
location: class WriteHelper 
       WritableFont times10ptBoldUnderline = new WritableFont(
                 ^
.\WriteHelper.java:59: cannot find symbol 
symbol : variable WritableFont 
location: class WriteHelper 
           WritableFont.TIMES, 10, WritableFont.BOLD, false 
, 
           ^
.\WriteHelper.java:59: cannot find symbol 
symbol : variable WritableFont 
location: class WriteHelper 
           WritableFont.TIMES, 10, WritableFont.BOLD, false 
, 
                 ^
.\WriteHelper.java:60: cannot find symbol 
symbol : variable UnderlineStyle 
location: class WriteHelper 
           UnderlineStyle.SINGLE); 
           ^
.\WriteHelper.java:61: cannot find symbol 
symbol : class WritableCellFormat 
location: class WriteHelper 
       timesBoldUnderline = new WritableCellFormat(times10ptBoldUnderli 
ne); 
             ^
.\WriteHelper.java:65: cannot find symbol 
symbol : class CellView 
location: class WriteHelper 
       CellView cv = new CellView(); 
       ^
.\WriteHelper.java:65: cannot find symbol 
symbol : class CellView 
location: class WriteHelper 
       CellView cv = new CellView(); 
           ^
.\WriteHelper.java:90: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label=new Label(j,k,JavaSamp.date.get(z),timesBold 
Underline); 
         ^
.\WriteHelper.java:90: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label=new Label(j,k,JavaSamp.date.get(z),timesBold 
Underline); 
             ^
.\WriteHelper.java:92: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label1=new Label(m,k,JavaSamp.motherboard.get(z),t 
imesBoldUnderline); 
         ^
.\WriteHelper.java:92: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label1=new Label(m,k,JavaSamp.motherboard.get(z),t 
imesBoldUnderline); 
             ^
.\WriteHelper.java:94: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label2=new Label(p,k,JavaSamp.processorid.get(z),t 
imesBoldUnderline); 
         ^
.\WriteHelper.java:94: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label2=new Label(p,k,JavaSamp.processorid.get(z),t 
imesBoldUnderline); 
             ^
.\WriteHelper.java:96: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label3=new Label(pn,k,JavaSamp.processorname.get(z 
),timesBoldUnderline); 
         ^
.\WriteHelper.java:96: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label3=new Label(pn,k,JavaSamp.processorname.get(z 
),timesBoldUnderline); 
             ^
.\WriteHelper.java:98: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label4=new Label(bn,k,JavaSamp.biosname.get(z),tim 
esBoldUnderline); 
         ^
.\WriteHelper.java:98: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label4=new Label(bn,k,JavaSamp.biosname.get(z),tim 
esBoldUnderline); 
             ^
.\WriteHelper.java:100: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label5=new Label(bid,k,JavaSamp.biosid.get(z),time 
sBoldUnderline); 
         ^
.\WriteHelper.java:100: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label5=new Label(bid,k,JavaSamp.biosid.get(z),time 
sBoldUnderline); 
             ^
.\WriteHelper.java:102: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label6=new Label(bman,k,JavaSamp.biosname.get(z),t 
imesBoldUnderline); 
         ^
.\WriteHelper.java:102: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label6=new Label(bman,k,JavaSamp.biosname.get(z),t 
imesBoldUnderline); 
             ^
.\WriteHelper.java:104: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label7=new Label(cval,k,JavaSamp.install_countlist 
.get(z),timesBoldUnderline); 
         ^
.\WriteHelper.java:104: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label7=new Label(cval,k,JavaSamp.install_countlist 
.get(z),timesBoldUnderline); 
             ^
.\WriteHelper.java:106: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label8=new Label(8,k,JavaSamp.maxval,timesBoldUnde 
rline); 
         ^
.\WriteHelper.java:106: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label8=new Label(8,k,JavaSamp.maxval,timesBoldUnde 
rline); 
             ^
.\WriteHelper.java:108: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label9=new Label(9,k,JavaSamp.maxsysval,timesBoldU 
nderline); 
         ^
.\WriteHelper.java:108: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
         Label label9=new Label(9,k,JavaSamp.maxsysval,timesBoldU 
nderline); 
             ^
.\WriteHelper.java:117: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
       Label label; 
       ^
.\WriteHelper.java:118: cannot find symbol 
symbol : class Label 
location: class WriteHelper 
       label = new Label(column, row, s, timesBoldUnderline); 

为什么这种类型的错误是araise如果有可能战胜它

+0

你如何运行它们?看起来你的类路径是错误的。 – 2011-06-17 11:51:13

回答

3

这些是类路径错误。您正在使用的类应该存在于JVM的类路径中。

让我们来看看下面的例子

.\WriteHelper.java:40: cannot find symbol 
symbol : class WritableSheet 
location: class WriteHelper 
       WritableSheet excelSheet = workbook.getSheet(0); 
       ^

此消息意味着:在WriteHelper.java,40行,你指的是一类WritableSheet但是编译器无法找到此种类。

classpath在你的程序中使用的类的编译器搜索。 Claspath是编译器和运行时在遇到他们“不知道”的类时所看到的路径(目录或jar文件集合)。 (他们“知道”的类是那些属于java语言的类(例如,在java.langjava.math中的类)。默认情况下,它们位于classpath中。

您必须指定您在类中使用的所有类在

WritableSheet classpath中。从jexcel库(如果我没看错的)。所以,你必须包含这个库在类路径中编译类在运行的类。

你请使用javacjava的-cp选项:

javac -cp ./lib/jxl.jar MyClass.java 

./lib/jxl.jar是我所假设的jExcel库的位置。这是一切,只要确保你在这里给出正确的道路。

你,如果你使用的是IDE(You should),你必须添加jxl.jar到IDE的类路径的位置运行类作为

java -cp ./lib/jxl.jar MyClass 

+0

嗨尼瓦斯,而我执行此cmd下面的错误也出现 – Aerrow 2011-06-17 13:13:11

1

你应该编译/运行时指定正确的类路径。

1

添加邮件API JAR(可能是邮件的1.4.jar),并在类路径jExcel jar文件(http://jexcelapi.sourceforge.net/)。

如果你从命令行运行Java代码..像Java [类名]然后给

java命令邮件1.4.jar; jexcelapi.jar [类名]

否则把这些罐子环境变量CLASSPATH中的文件路径