考虑导入依赖关系运行java程序

考虑导入依赖关系运行java程序,java,import,uima,Java,Import,Uima,我的位置有java文件 /root/Desktop/software/UIMA/yagogit/yodaqa/src/main/java/cz/brmlab/yodaqa/analysis/question/FocusGenerator.java 此文件是整个项目的一部分- 它从UIMA和其他几个包中导入了几个类。(我已在系统上配置UIMA) 在按照自述文件执行整个项目时,它运行良好。但是我想测试每个单独的程序,就像上面提到的一样。当我尝试使用javac进行编译时,它给出了错误,无法找到符号,

我的位置有java文件

/root/Desktop/software/UIMA/yagogit/yodaqa/src/main/java/cz/brmlab/yodaqa/analysis/question/FocusGenerator.java
此文件是整个项目的一部分-

它从UIMA和其他几个包中导入了几个类。(我已在系统上配置UIMA)

在按照自述文件执行整个项目时,它运行良好。但是我想测试每个单独的程序,就像上面提到的一样。当我尝试使用
javac
进行编译时,它给出了错误,
无法找到符号,如下所示

ATByFocus.java:77: cannot find symbol
symbol  : class ImplicitQLAT
location: class cz.brmlab.yodaqa.analysis.question.LATByFocus
            addFocusLAT(jcas, focus, "amount", null, 33914, 0.0, new ImplicitQLAT(jcas));
                                                                     ^
LATByFocus.java:83: cannot find symbol
symbol  : class LAT
location: class cz.brmlab.yodaqa.analysis.question.LATByFocus
            addFocusLAT(jcas, focus, text, pos, 0, 0.0, new LAT(jcas));
等等


执行此文件的正确方法是什么。我尝试在eclipse中将其导入到,但在eclipse中也无法将其作为项目导入

很难单独构建YodaQA的各个部分。我认为只在YodaQA中工作要简单得多,但是创建自定义的主类,它将直接调用FocusGenerator或任何其他您想要的类


要添加另一个主类并执行它,您需要添加另一个gradle目标。请参阅build.gradle以获取一些示例:TSVG、biocrftrain等。

您真的、真的、真的不应该以root用户身份执行此操作。不,真的。这有点像没有安全带以每小时80英里的速度开车。只要你不撞车,你就会没事的。。。在Linux系统上获得的保护很大一部分来自作为非特权用户而不是根用户执行正常操作,这尤其适用于登录到图形窗口系统。Linux比Windows干净得多,它允许您在没有root/管理员权限的情况下完成正常的工作。如果要使用外部JAR,必须通过“-cp”命令行开关向
javac
命令提供要使用的JAR的类路径。请参阅
javac
的文档:。因此,调用将是例如
javac-cp/path/to/userjar1.jar:/path/to/usejar2.jar filename.java
。如果要使用外部项目的某些类,建议使用支持的构建工具构建项目jar。这里好像是格拉德。然后在项目中使用这些JAR。但仅使用
javac
就不那么容易了。不仅有构建工具创建的JAR,还有yodaqa项目使用的所有依赖项。您还必须在类路径中包含所有这些JAR。因此,最好的方法是在您自己的项目中使用具有自动依赖项解析功能的构建工具,如Maven或Gradle。您应该了解更多关于Java、JVM、JAR和构建工具(如Maven和Gradle)的工作原理。这并不容易,但值得。
ATByFocus.java:77: cannot find symbol
symbol  : class ImplicitQLAT
location: class cz.brmlab.yodaqa.analysis.question.LATByFocus
            addFocusLAT(jcas, focus, "amount", null, 33914, 0.0, new ImplicitQLAT(jcas));
                                                                     ^
LATByFocus.java:83: cannot find symbol
symbol  : class LAT
location: class cz.brmlab.yodaqa.analysis.question.LATByFocus
            addFocusLAT(jcas, focus, text, pos, 0, 0.0, new LAT(jcas));