2010-09-17 80 views
0

我有一个JavaMail的应用,在Android/Eclipse环境中工作正常,但投在NetBeans以下(移植Android应用到桌面):如何将NetBeans引导类路径设置为包含mail.jar?

javax.activation.UnsupportedDataTypeException: 没有对象DCH的MIME类型 多/混合 边界= “---- = _ Part_0_7749469.1284737984291”

我发现了一个workaround here,但无法弄清楚如何在NetBeans应用它。 我已经将mail.jar添加到NetBeans编译时库,但不知道如何将NetBeans引导类路径设置为包含mail.jar,如变通方法中的建议。 从http://www.opensubscriber.com/message/[email protected]/7570201.html

JAF使用上下文类加载器 负载类。如果失败,它将使用加载JAF 类的类加载器 。

当JAF封装与应用 的JAF类 由同一个类加载器加载的 其他应用类,所以即使 上下文类加载器没有设置JAF 可以找到其他应用程序 类。

当JAF是JDK的一部分时,JAF 类由系统 加载类加载器。如果没有上下文 设置类加载器,JAF没有 的方法来找到合适的类 加载器来加载应用程序类。

(由于JavaMail是打包带 应用中,JavaMail的类被 一样对待应用 类。)

一种解决方法是设置引导类 路径包括的mail.jar。

如何将NetBeans引导类路径设置为包含mail.jar?

回答

2

除非您正在编写NB插件,否则不需要它在NB引导类路径上。你想在你的项目的课程路径上。

首先,您需要将mail.jar添加为库。

  • Tools > Libraries
  • New Library
  • Library name Java邮件
  • Library Type:类库
  • OK
  • Add JAR/Folder
  • 浏览了JavaMail。罐子
  • Add JAR/Folder
  • OK

现在,库添加到您的项目

  • File > Project Properties
  • Libraries
  • Compile标签
  • Add Library
  • (如果您使用NB 6.9,可能会有额外的Import Libraries一步这里)从列表中
  • OK

这应该是它

  • 选择Java邮件。

    请注意,您需要确保javamail.jar与您的应用程序一起分发;直接或通过jnlp文件。

  • +0

    对不起。没有帮助。正如我在原始问题中所说的,我已经将mail.jar添加到NetBeans编译时库(以及activation.jar和additional.jar)中,但似乎存在上下文类加载器的一些问题:http ://www.opensubscriber.com/message/[email protected]/7570201.html。我尝试了你的程序(我之前使用过一种稍微不同的方法),但是似乎只是再次添加库。上面提出的解决方法是将引导类路径设置为包含mail.jar,但是我再也不知道该怎么做。 – jacknad 2010-09-17 17:41:38

    +0

    我通过删除activation.jar来摆脱错误。根据http://www.oracle.com/technetwork/java/index-138643.html'除非你使用Java SE 6,否则你还需要JavaBeans Activation Framework(JAF)扩展,它提供了javax.activation包。我们建议您使用最新版本JAF的1.1.1版本。 JAF包含在Java SE 6中。您的过程是正确的。我需要我的android环境中的activation.jar(和additional.jar)。谢谢。 – jacknad 2010-09-20 18:32:09