首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java导入外部jar文件

Java导入外部jar文件
EN

Stack Overflow用户
提问于 2014-07-14 12:50:10
回答 2查看 672关注 0票数 4

假设我在~/ TryJar.java /中有jar

代码语言:javascript
复制
public class TryJar {
    public static void hello() {
        System.out.println("Hello World!");
    }
}

然后我输入:

代码语言:javascript
复制
javac TryJar.java
jar cf TryJar.jar TryJar.class

我想在~/src/中的另一个源文件中导入这个类:

代码语言:javascript
复制
public class TrySrc {
    public static void main(String[] args) {
        TryJar.hello();
    }
}

我尝试了两种方法:

1.

代码语言:javascript
复制
javac -cp ~/jar/TryJar.jar TrySrc.java

它在编译过程中是正常的,但是当我尝试运行它时,出现了错误:

代码语言:javascript
复制
java -cp .:~/jar/TryJar.jar TrySrc
Exception in thread "main" java.lang.NoClassDefFoundError: TryJar
    at TrySrc.main(TrySrc.java:3)
Caused by: java.lang.ClassNotFoundException: TryJar
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    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)
    ... 1 more

2.

我尝试在我的.bashrc和.profile中包含以下命令(我没有.bash_profile或.bash_login):

代码语言:javascript
复制
export CLASSPATH=$CLASSPATH:~/jar/TryJar.jar

和:

代码语言:javascript
复制
source .bashrc
source .profile

但这一次,它仍然是错误的:

代码语言:javascript
复制
javac TrySrc.java
TrySrc.java:3: error: cannot find symbol
        TryJar.hello();
        ^
  symbol:   variable TryJar
  location: class TrySrc

我应该怎么做才能包含外部jar文件?

编辑:整个项目只包含两个目录:

代码语言:javascript
复制
~/jar/:
   TryJar.java
   TryJar.class
   TryJar.jar
~/src/:
   TrySrc.java

Jar的结构:

代码语言:javascript
复制
jar tf TryJar.jar 
META-INF/
META-INF/MANIFEST.MF
TryJar.class

我的系统是Ubuntu 12.04,java版本:

代码语言:javascript
复制
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b70, mixed mode)
EN

回答 2

Stack Overflow用户

发布于 2014-07-14 12:51:15

以你的方式1:

尝试从

代码语言:javascript
复制
java -cp ~/jar/TryJar.jar TrySrc

代码语言:javascript
复制
java -cp .:~/jar/TryJar.jar TrySrc

在类路径中包含当前目录,以便能够加载TrySrc

票数 2
EN

Stack Overflow用户

发布于 2014-07-14 15:04:27

它在编译时失败。尝试先在TrySrc.java中导入"TryJar“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24729693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档