【问题标题】:Java, using class files from a .jarJava,使用 .jar 中的类文件
【发布时间】:2018-07-05 13:27:50
【问题描述】:

所以我正在尝试使用我下载的 jar 文件中的类。 jar 文件与将使用 jar 文件中的类的 .java 文件不在同一目录中。

我跑

    jar -tvf json-simple-1.1.1.jar 

我明白了

0 Sun Feb 19 14:30:56 CST 2012 org/
0 Sun Feb 19 14:30:56 CST 2012 org/json/
0 Sun Feb 19 14:30:56 CST 2012 org/json/simple/
3939 Sun Feb 19 14:30:54 CST 2012 org/json/simple/ItemList.class
2077 Sun Feb 19 14:30:54 CST 2012 org/json/simple/JSONArray.class
161 Sun Feb 19 14:30:54 CST 2012 org/json/simple/JSONAware.class
3076 Sun Feb 19 14:30:54 CST 2012org/json/simple/JSONObject.class
223 Sun Feb 19 14:30:54 CST 2012 org/json/simple/JSONStreamAware.class
3964 Sun Feb 19 14:30:54 CST 2012 org/json/simple/JSONValue.class
0 Sun Feb 19 14:30:56 CST 2012 org/json/simple/parser/

我想实现ItemList.class,我现在知道它在包里

    org/json/simple/

所以在我的 .java 文件中我会这样做

    import org.json.simple.ItemList;

    public class Foo(){

    public static void main(String[]args){
    ItemList i = new ItemList();
        }
    }

我现在需要编译 Foo() 所以我运行

    javac -cp '.;json-simple-1.1.1.jar' Foo.java

我得到包 org.json.simple 不存在但在 github 中的类 ItemList 有包 org.json.simple 的错误

我错过了什么吗?提前致谢

【问题讨论】:

  • 把jar放到classpath下,导入你需要的类。
  • 我不是用“import package.ItemList;”做的吗?和 javac -cp 'jar' Foo.java
  • 为什么要手动下载jar文件?如果您使用 maven 为您做所有这些事情,您会为自己节省很多(依赖)问题。
  • 如果您使用的是 Linux,请在类路径中使用冒号 : 而不是分号 ;
  • 谢谢!那行得通

标签: java jar package filepath javac


【解决方案1】:

如果jar不在同一个目录下需要在指定类路径时给出jar目录的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 2010-09-09
    • 2012-11-15
    • 1970-01-01
    • 2021-11-26
    相关资源
    最近更新 更多