2013-02-17 179 views
1

你们让我很自觉......我会尽力让这个更好。Java程序在Windows 7上工作,但不是Windows 8?

好的,所以这个程序(不要杀我..我下载它)只能在Windows 7和Ubuntu上工作,据我所知。当你在Windows 8上打开它时,它会显示“Java异常错误”。

我在想这个和文件末尾的catch(messagingException ex)有关。我承认,我对java一无所知,但你必须从某处开始......不是吗?我知道java适用于所有平台!

我也尝试过这个程序有多个文件和多个Gmail帐户......我甚至用我的康卡斯特电子邮件地址试了一下。
我使用“JavaMailAPI”(http://www.oracle.com/technetwork/java/javamail/index.html)作为实际的邮件部分。

当我打开它在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); 
      } 
     } 
} 

如果您需要任何其他有关程序请查询!

+3

显然Windows 8上的计算机上缺少'java.mail'包(JAR文件) – 2013-02-17 15:16:44

+0

您在这些系统上运行的是哪个版本的Java?哪些库与应用程序一起打包? – toniedzwiedz 2013-02-17 15:17:25

+0

我在两台机器上运行Java 7u13,并且JavaMail应该与它打包在一起..但它似乎不是。我假设这将是我的问题,我如何打包一个图书馆的程序? – Leetfail 2013-02-17 15:19:10

回答

0

You have to download Java Mail

如果通过该应用程序所需的JavaMail你应该建立一个安装程序打包和安装所需的JAR文件作为JavaMail的。

+0

谢谢,但无论如何要添加到程序本身?所以我不必告诉大家下载它? – Leetfail 2013-02-17 15:51:07

+0

所以你所要做的只是让你的电脑上的javamail运行“Mail.jar”? – Leetfail 2013-02-17 15:54:28

+0

构建分发的应用程序是构建工具的工作。查看[Gradle](http://www.gradle.org/),特别是[应用程序插件](http://www.gradle.org/docs/current/userguide/application_plugin.html),它将为您的应用程序生成批处理脚本和shell脚本,并使用这些脚本,代码和所有必需的库生成zip或tar文件。 – 2013-02-17 16:21:59

相关问题