尝试在RHEL上运行时找不到javamail类

时间:2018-03-09 18:30:02

标签: java linux classpath javamail

我被要求在RHEL 7服务器上配置和使用javamail。 我解压缩了他们在这里的javamail目录,其中包含以下文件:     

         
  • 的activation.jar
  •      
  • cacerts中
  •      
  • config.properties
  •      
  • InstallCert.class
  •      
  • InstallCert $ SavingTrustManager.class
  •      
  • 的mail.jar
  •      
  • SimpleSSLMail.class
  •    
另外,我创建了一个/etc/profile.d/java.sh,其中包含以下内容:

JAVA_HOME=/usr/java/jre1.6.0_45
export PATH=$JAVA_HOME/bin:/usr/bin:/bin:/usr/sbin:$PATH
export CLASSPATH=$CLASSPATH:/usr/share/javamail/activation.jar:/usr/share/mail.jar:.

cacerts是一个密钥库,它将gmail的证书保存到sendmail。当我尝试使用以下内容发送邮件时:

java -Djavax.net.ssl.trustStore="cacerts" -Djavax.net.ssl.trustStorePassword="somepassword" SimpleSSLMail "SomeHeader" "Testing..." "some@mail.com"

失败并显示消息:

  

线程“main”中的异常java.lang.NoClassDefFoundError:   SimpleSSLMail引起:java.lang.ClassNotFoundException:   SimpleSSLMail           在java.net.URLClassLoader $ 1.run(未知来源)           at java.security.AccessController.doPrivileged(Native Method)           at java.net.URLClassLoader.findClass(Unknown Source)           at java.lang.ClassLoader.loadClass(Unknown Source)           at sun.misc.Launcher $ AppClassLoader.loadClass(Unknown Source)           at java.lang.ClassLoader.loadClass(Unknown Source)无法找到主类:SimpleSSLMail。程序将退出

我已经回顾了许多帖子,说问题是java没有找到邮件和激活jar,但是我无法正确处理CLASSPATH来处理这些文件。我也尝试使用-cp这样的标记:java -cp mail.jar -cp activation.jar -Djavax.net.ssl.trustStore="cacerts" ..... 它没用,我得到同样的错误。 我错过了什么或如何让它工作? 我只有java jre;我需要使用javac编译它吗? 我的目标是让它工作,以便创建一个别名,用户只能键入sendmail "Message" "mail.com"或类似的

更新


我在类路径中输入了一个拼写错误,而不是使用/usr/share/javamail/mail.jar而是使用/usr/share/mail.jar 现在,在创建别名时,它在javamail目录中工作正常,但如果我尝试在directoy之外运行它,java会抱怨它找不到config.properties。我相信它正在寻找./config_properties 我没有源代码,那么,有没有办法用命令行覆盖config.properties位置?

0 个答案:

没有答案