无法运行此java应用程序的演示

时间:2013-08-29 13:24:42

标签: java maven

我是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
                            ...

这是另一个问题,即使可以运行演示,我如何在其他地方使用这个java库?我想应该使用文件ansj_set-0.8.jar。再一次,我对Java一无所知。任何建议都会非常有用。


更新:

如果我使用指定的classpath运行:

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

仍然有错误,但不同:

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

1 个答案:

答案 0 :(得分:0)

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

试试这个:

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

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

请注意,您必须在主源树下移动您的演示。