在Ubuntu终端上编译复杂的Java程序
我已经在Ubuntu中导出了我的Eclipse Java项目,所有的在Ubuntu终端上编译复杂的Java程序,java,eclipse,ubuntu,compilation,Java,Eclipse,Ubuntu,Compilation,我已经在Ubuntu中导出了我的Eclipse Java项目,所有的.Java和.class文件都已准备就绪 本项目由以下部分组成: - src - package1 - file1.java ... - fileN.java ... - packageM - fileM.java ... - fileN.java 要运行该程序,我使用以下命令: java -Djava.libra
.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
现在,我只更改了类中的一行(它不是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() {
^
src/it/polimi/tweetscrawlingpipeline/pipeline/tweetscrawlingpipeline.java:7:错误:包org.opencv.core不存在
导入org.opencv.core.core;
^
符号:SVMSample类
位置:类TweetScrawlingPipeline
src/it/polimi/TweetScrawlingPipeline/pipeline/TweetScrawlingPipeline.java:158:错误:找不到符号
公共泛型分类器getTextClassifier(){
^
如何解决这些问题
谢谢。这可能不是您想要的答案,但是使用javac在命令行中编译很快就会变得很痛苦。除非您将命令和类路径放入shell脚本中,否则它可能会变得很麻烦
如果可能的话,我建议使用ant、gradle甚至maven。maven可能有些过分,但ant是一个合理的开始。您能提供一个错误示例吗?您需要在类路径中指定(使用
-cp
)编译器可以在其中找到这些库JAR和其他文件。我添加了一些错误示例。@OriLentz您可以提供一个示例吗?是的,将其重定向到当前的。class
文件所在的位置。例如:javac-cp path/to/your/project/;path/to/your/to/libraries path/to/main/class/MainClass。java
这个过程不会重复吗替换那些.class
文件?由于与OpenCV的兼容性问题,我无法使用maven。如何生成ANT文件?所以ANT只是一个程序,甚至可能已经存在(“哪个ANT”)或者只是“sudo apt get-u install ant”。构建文件通常命名为build.xml,web上应该有很多关于如何设置它的文档。对于编译一组类来说,这相当简单。