0

我对Java完全陌生,只是学到了一点,因为我需要运行这个项目:https ://github.com/ansjsun/ansj_seg

我跑了

mvn compile

和其他一些东西。

现在,在 ansj_seg/target 我有一个名为 ansj_seg-0.8.jar 的文件,这似乎很重要,虽然我不知道如何使用它。

在 ansj_seg/src/test/java/org/ansj/demo 中,有一些演示,我想运行 BaseAnalysisDemo.java,我尝试如下。

第一步,我编译使用:

javac -classpath ~/Downloads/ansj_seg/target/ansj_seg-0.8.jar  BaseAnalysisDemo.java

它工作正常并生成 BaseAnalysisDemo.class。

但是当我尝试使用它运行它时

java BaseAnalysisDemo

发生错误:

Exception in thread "main" java.lang.NoClassDefFoundError: BaseAnalysisDemo (wrong name: org/ansj/demo/BaseAnalysisDemo)

我想我应该设置一些路径,但不知道。

任何人都可以帮忙吗?

顺便说一句,我更喜欢使用命令行而不是 Eclipse。

目录结构是这样的(更新):

\ansj_seg
    pom.xml
    \src
        \main
            \java
                \org
                    \ansj
                        \app
                        \dic
                        \domain
                        ...
            \resource
                ...
        \test
            \java
                \org
                    \ansj
                        \demo
                            BaseAnalysisDemo.java
                            Demo.java
                            ...
                        \test
                            ...

这里还有一个问题,即使demo可以运行,我怎么能在别的地方使用这个java库呢?我猜应该使用文件 ansj_set-0.8.jar。同样,我对 Java 一无所知。任何建议都会非常有帮助。


更新:

如果我使用指定的类路径运行:

java -classpath ~/Downloads/ansj_seg/target/ansj_seg-0.8.jar BaseAnalysisDemo

仍然有错误,但不同:

Exception in thread "main" java.lang.NoClassDefFoundError: BaseAnalysisDemo
4

1 回答 1

0

您很快就会回到 Eclipse,因为您想做的事情有点麻烦,但是可行。

尝试这个:

mvn exec:java -Dexec.mainClass="java.org.ansj.demo.BaseAnalysisDemo.java"

如果您也需要参数,请添加-Dexec.args到列表中。

请注意,您必须将演示移动到主源代码树下。

于 2013-08-29T14:36:52.757 回答