我被要求在RHEL 7服务器上配置和使用javamail。 我解压缩了他们在这里的javamail目录,其中包含以下文件:
/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位置?