Java程序在Windows7上运行,而不是Windows8?

Java程序在Windows7上运行,而不是Windows8?,java,windows,jakarta-mail,Java,Windows,Jakarta Mail,你们这些人让我很有自知之明。。我会努力把这个做得更好 好吧,就我所知,这个程序(别杀我..我下载了它)只在Windows7和Ubuntu上运行。在Windows8上打开它时,会显示“Java异常错误” 我认为这与文件末尾的catch(MessaginException ex)有关。我承认,我对java知之甚少,但你必须从某个地方开始。。你不觉得吗?我知道java适用于所有平台 我也用多个文件和多个Gmail帐户尝试过这个程序。。。我甚至用我的Comcast电子邮件地址试用过。 我使用“JavaM

你们这些人让我很有自知之明。。我会努力把这个做得更好

好吧,就我所知,这个程序(别杀我..我下载了它)只在Windows7和Ubuntu上运行。在Windows8上打开它时,会显示“Java异常错误”

我认为这与文件末尾的catch(MessaginException ex)有关。我承认,我对java知之甚少,但你必须从某个地方开始。。你不觉得吗?我知道java适用于所有平台

我也用多个文件和多个Gmail帐户尝试过这个程序。。。我甚至用我的Comcast电子邮件地址试用过。
我使用“JavaMailAPI”(JavaMailAPI)作为实际的邮件部分

当我在Windows 8的终端上打开它时,它会给出以下信息:

Exception in thread "Main" java.lang.noclassdeffounderror: java/mail/mailexception
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.langf.Class.privateGetDdecLaredMethods(Unkown source)
at java.lang.Class.getMethod(unknown source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown source)
caused by: java.lang.classnotfoundexception: java.mail.messagingException
at java.net.URLCLassLoader$1.run(unknown source)
at java.net.URLClassLoader$1.run(Unknown source)
at java.security.AccessController.doPrivaleged(native Method)
at java.net.URLClassLoader.findClass(Unknown source)
at java.lang.ClassLoader.findClass(Unkown source)
at jaa.lang.CLassLoader.loadClass(Unknown source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown source)
at java.lang.ClassLoader.loadClass(Unknown source)
... 6 more
代码如下:

package testing;

import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Testing{
    public static void main(String[] args) {
        Properties props = new Properties();
        props.put("mail.smtp.host", "smtp.gmail.com");
        props.put("mail.smtp.socketFactory.port", "465");
        props.put("mail.smtp.socketFactory.class",
                "javax.net.ssl.SSLSocketFactory");
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.port", "465");

        Session session = Session.getDefaultInstance(props,
            new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication("Email","Password");
                }
            });

        try {
                        BodyPart messageBodyPart = new MimeBodyPart();
                        Multipart multipart = new MimeMultipart();
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("Email Address"));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("Email Address to send "));
            message.setSubject("Subject");
            message.setText("Message");
                         String filename = "attachment location";
         DataSource source = new FileDataSource(filename);
         message.setDataHandler(new DataHandler(source));
         message.setFileName(filename);
         multipart.addBodyPart(messageBodyPart);
            Transport.send(message);
            System.out.println("Done");
                } catch (MessagingException ex) {
                Logger.getLogger(Testing.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
}
如果您需要关于该计划的任何其他信息,请询问


如果此应用程序需要JavaMail,您应该构建一个安装程序,将所需的JAR打包并安装为JavaMail。

显然,Windows 8的计算机上缺少
java.mail
包(JAR文件),您在这些系统上运行的是哪个版本的java?应用程序打包了哪些库?我在两台机器上都运行Java 7u13,JavaMail应该打包在一起。。但事实似乎并非如此。我假设这是我的问题,我如何用程序打包一个库?不,javamail不是基本jdk的一部分。我用一种奇怪的方式键入它。我在两台计算机上都运行7u13。我原以为javamail会和jar文件一起打包,而不是程序,但我想不会吧?谢谢你,但是有没有办法把它添加到程序本身呢?这样我就不必告诉每个人下载它了?所以你只需要运行“Mail.jar”就可以在你的计算机上获得javamail?构建应用程序进行分发是构建工具的工作。看看,特别是,它将为您的应用程序生成批处理和shell脚本,并使用这些脚本、代码和所有必需的库构建zip或tar文件。