在 Ubuntu 终端中编译复杂的 Java 程序
Compile complex Java program in Ubuntu terminal
我已经在 Ubuntu 中导出了我的 Eclipse Java 项目,其中包含所有 .java
和 .class
文件。
项目组成如下:
- src
- package1
- file1.java
...
- fileN.java
...
- packageM
- fileM.java
...
- fileN.java
为了运行程序,我使用如下命令:
java -Djava.library.path="/path/to/opencv/lib" -cp lib/*:src package.to.main.class.MainClass
现在,我只更改了 class 中的一行(这不是 MainClass
),我想重新编译 运行 一切。但是,当以下列方式尝试使用 javac
时:
javac path/to/main/class/MainClass.java
我得到了数百万个错误,因为:
- 找不到库
- 其他Java 个文件未链接
一些示例:
src/it/polimi/tweetcrawlingpipeline/pipeline/TweetCrawlingPipeline.java:7: error: package org.opencv.core does not exist
import org.opencv.core.Core;
^
symbol: class SVMSample
location: class TweetCrawlingPipeline
src/it/polimi/tweetcrawlingpipeline/pipeline/TweetCrawlingPipeline.java:158: error: cannot find symbol
public GenericClassifier<SVMSample> getTextClassifier() {
^
我该如何解决这些问题?
谢谢。
这可能不是您想要的答案,但在命令行仅使用 javac 进行编译很快就会变得很痛苦。除非您将命令和类路径放入 shell 脚本中,否则它会变得很复杂。
如果可能的话,我建议使用像 ant、gradle 甚至 maven 这样的东西。好吧,maven 可能有点矫枉过正,但 ant 是一个合理的开始。
我已经在 Ubuntu 中导出了我的 Eclipse Java 项目,其中包含所有 .java
和 .class
文件。
项目组成如下:
- src
- package1
- file1.java
...
- fileN.java
...
- packageM
- fileM.java
...
- fileN.java
为了运行程序,我使用如下命令:
java -Djava.library.path="/path/to/opencv/lib" -cp lib/*:src package.to.main.class.MainClass
现在,我只更改了 class 中的一行(这不是 MainClass
),我想重新编译 运行 一切。但是,当以下列方式尝试使用 javac
时:
javac path/to/main/class/MainClass.java
我得到了数百万个错误,因为:
- 找不到库
- 其他Java 个文件未链接
一些示例:
src/it/polimi/tweetcrawlingpipeline/pipeline/TweetCrawlingPipeline.java:7: error: package org.opencv.core does not exist
import org.opencv.core.Core;
^
symbol: class SVMSample
location: class TweetCrawlingPipeline
src/it/polimi/tweetcrawlingpipeline/pipeline/TweetCrawlingPipeline.java:158: error: cannot find symbol
public GenericClassifier<SVMSample> getTextClassifier() {
^
我该如何解决这些问题?
谢谢。
这可能不是您想要的答案,但在命令行仅使用 javac 进行编译很快就会变得很痛苦。除非您将命令和类路径放入 shell 脚本中,否则它会变得很复杂。
如果可能的话,我建议使用像 ant、gradle 甚至 maven 这样的东西。好吧,maven 可能有点矫枉过正,但 ant 是一个合理的开始。