JavaMail和Java 1.4 - 找不到记录器

时间:2013-03-07 13:07:45

标签: java javamail jdk1.4

我正在尝试在使用Java 1.4(必需)的项目中使用JavaMail API 1.4.6。 我收到了错误:

[stderr] java.lang.NoClassDefFoundError: java.util.logging.Logger  
[stderr]    at com.sun.mail.util.MailLogger.<init>(MailLogger.java:104)  
[stderr]    at javax.mail.Session.initLogger(Session.java:227)  
[stderr]    at javax.mail.Session.<init>(Session.java:212)  
[stderr]    at javax.mail.Session.getDefaultInstance(Session.java:315)  

在哪里可以下载旧的java库以包含在我的项目中?我的Windows 8 PC上只安装了Java 1.7。

是否可以在此处使用不同的Logger库,或尝试使用较旧的JavaMail API版本?

3 个答案:

答案 0 :(得分:1)

您在this comment中提到您在嵌入式设备(理光打印机)上使用JRE。如果你指的是Ricoh的ESA,那么它声称是J2 ME ,而不是J2 SE 。 J2ME包含一些但不是所有标准J2SE类,java.util.logging似乎是未包含的那些包之一。

答案 1 :(得分:0)

您可以使用Log4J库进行日志记录。它的开源,您可以从

下载相同的
http://logging.apache.org/log4j/1.2/download.html

因此,您可以将Java lib与此Log4j一起使用。你必须在类路径中添加这个lin。

以下是Log4j的简单配置

log4j.rootLogger=INFO, file, stdout

 log4j.logger.com.test.pkg=info
 log4j.logger.org.hibernate.SQL=STDOUT

# Direct log messages to a log file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/tmp/test.log
log4j.appender.file.MaxFileSize=1MB
log4j.appender.file.MaxBackupIndex=7
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d %-5p [%t] [%c{1}:%L] %m%n

# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %-5p [%t] [%c{1}:%L] %m%n

答案 2 :(得分:0)

JavaMail 1.4.6是add support for debug output using java.util.logging的第一个版本。

您可以尝试降级到不依赖java.util.logging的{​​{3}},并使用JavaMail 1.4.5作为激​​活依赖项(如果您的Java运行时尚未包含此内容)。开箱即用,com.sun.mail:android-activation:1.5.5