我正在尝试在使用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版本?
答案 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。