【问题标题】:how to import jar files in linux machine如何在linux机器中导入jar文件
【发布时间】:2011-07-20 11:42:25
【问题描述】:

我正在尝试在 Linux 机器上运行 Java 程序,其中包括:

import javax.mail.*;

我已将mail.jar 包含在myjdk/lib 中。即使在编译时也会显示类似

的错误
javax.mail does not exist

怎么办?

【问题讨论】:

  • 你知道 -jar 选项吗?
  • 您能否发布有关所显示错误的更多信息?
  • 您是从 Windows 迁移到 Linux,还是开始在 Linux 上进行开发?以及你如何处理“lib”目录中的文件>
  • 我正在使用 java api 为 SMTP 开发一个程序
  • 我在 windows 上做过,但现在我被要求在 linux 上做同样的事情

标签: java linux smtp compiler-errors


【解决方案1】:

在 bash 上运行此命令

export CLASSPATH=$CLASSPATH:/path/to/my.jar

然后编译

【讨论】:

  • 这是个坏主意。如果您依赖于在环境中设置的类路径,那么如果您转到另一台机器或将另一个程序员添加到项目中,您的程序或构建将失败。更糟糕的是,您可以使用不正确的 JAR 版本构建/运行。
  • 但是由于一些要求,现在我必须在 linux 上进行相同的编程,在 eclipse 中我添加了 mail.jar 和 activation.jar 但现在我不知道该怎么做 opn linux
  • 你不是也在 Linux 上使用 Eclipse 吗?
  • @parsifal - 使用 CLASSPATH 变量的原因是为了便于在具有不同文件布局的系统之间迁移!
  • @symcbean - 这不是一个好的理由。也许您很幸运,从未参与开发人员拥有不同 CLASSPATH 环境变量的项目。我倒霉的次数太多了。
【解决方案2】:

检查您的 CLASSPATH。确保它指向目录中的所有 JAR 文件。这应该由 JAR 的直接路径或通配符指定。

看看这个关于设置类路径的页面:http://download.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html

【讨论】:

  • 如何在 linux 上 chk 类路径?
【解决方案3】:

根据您的 cmets,我将假设您有一个脚本可以从“lib”目录中的文件构造类路径。

在这种情况下,最可能的问题是 Windows 使用分号 (";") 作为类路径分隔符,而 Linux 使用冒号 (":")。

顺便说一句,我不知道在这两种环境中都可以使用的解决方案。通常的方法是为 Linux 创建一个“runme.sh”,为 Windows 创建一个“runme.bat”。

【讨论】:

    【解决方案4】:

    将所有 jar 文件和 .java 文件复制到同一文件夹中。 编译,

    javac -cp .:mail.jar SendEmail.java
    

    执行,

    java -cp .:mail.jar SendEmail
    

    【讨论】:

      猜你喜欢
      • 2017-10-04
      • 2017-10-07
      • 2015-11-09
      • 2013-11-25
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多