如何解决如何将 jar 文件包含为依赖项?
有这样的布局:
.
├── lib
│ └── Calculator.jar
├── TestLib
│ ├── com
│ │ └── example
│ │ └── util
│ │ ├── Calculator.class
│ │ └── Calculator.java
│ └── manifest.txt
└── TestWeb
└── com
└── example
└── Runner.java
Calculator.java
:
package com.example.util;
public class Calculator{
public int add(int i,int j){
return i + j;
}
}
Runner.java
:
package com.example;
import com.example.util.Calculator;
public class Runner{
public static void main(String[] args){
Calculator c = new Calculator();
System.out.println(c.add(4,8));
}
}
我已将 Calculator.class
中的 jar 文件制作成 lib/Calculator.jar
。现在我想在 Calculator
类中使用 Runner.java
对象。所以如果我发出:
javac -cp .:lib/Calculator.jar TestWeb/com/example/Runner.java
我得到了
TestWeb/com/example/Runner.java:3: error: package com.example.util does not exist
import com.example.util.Calculator;
^
TestWeb/com/example/Runner.java:8: error: cannot find symbol
Calculator c = new Calculator();
^
symbol: class Calculator
location: class Runner
TestWeb/com/example/Runner.java:8: error: cannot find symbol
Calculator c = new Calculator();
^
symbol: class Calculator
location: class Runner
3 errors
我做错了什么?
解决方法
类路径语法取决于操作系统。来自Wikipedia:
与文件系统密切相关的命令行 类路径语法取决于操作系统。[1]例如:
在所有类 Unix 操作系统(例如 Linux 和 Mac OS X)上, 目录结构具有 Unix 语法,具有单独的文件路径 用冒号(“:”)分隔。在 Windows 上,目录结构有一个 Windows 语法,每个文件路径必须用分号分隔 (“;”)。当在清单中定义类路径时,这不适用 文件,其中每个文件路径必须用空格 (" ") 分隔, 与操作系统无关。
,如果我遗漏了您需要的任何东西,请告诉我:
goose@t410:/tmp/build$ tree -n
.
├── lib
│ └── Calculator.jar
├── TestLib
│ └── com
│ └── example
│ └── util
│ ├── Calculator.class
│ └── Calculator.java
└── TestWeb
└── com
└── example
├── Runner.class
└── Runner.java
goose@t410:/tmp/build$ java -cp lib/Calculator.jar:TestWeb com.example.Runner
12
goose@t410:/tmp/build$
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。