我正在尝试从Emory NLP运行此DDR(深度依赖关系表示)转换工具:https://github.com/elitcloud/elit-java/tree/master/elit-ddr
我已经在名为depConverter的新目录中创建了一个新的Maven项目,并将来自网站的指定依赖项添加到DepConverter中的pom.xml文件中。这个pom.xml文件是通过自动创建一个新的默认Maven项目而构建的。我认为我缺少此pom.xml文件中的某些内容,无法正常运行DDR工具,因为当我在depConverter中运行指定的命令行命令java cloud.elit.ddr.bin.DDRConvert -i relcl.parse -oe tsv
时,出现以下错误:
Error: Could not find or load main class cloud.elit.ddr.bin.DDRConvert
我不清楚Maven如何加载此类。我必须创建一个Java文件来运行此工具吗?
答案 0 :(得分:0)
假设,问题在于从命令行运行:
尝试从命令行运行时,DDR库不在类路径中。这就是为什么JVM无法加载预期在该库中找到的主类的原因。
因此您可以尝试运行:
java -classpath <PATH_TO_DDR_JAR> cloud.elit.ddr.bin.DDRConvert -i relcl.parse -oe tsv
这是最简单的方法。 该jar有望在本地Maven存储库(默认情况下为〜/ .m2 / repository)中找到。
Maven简而言之是一个构建工具,它不会在工件内部运行任何东西,也不会像您的情况那样运行任何依赖项。
或者,如果您要“使用” pom中提供的信息(如依赖图),则仍然可以运行mvn exec:exec
/ mvn exec:java
插件并提供相关参数来运行您的选择。
您可以找到有关exec插件here的更多信息。