1

我有一个 java 类,我从中创建了一个 jar 文件来访问另一个项目中的类。

这个类看起来像这样

public class RunMain {

    private ArgumentObject argObject = null;
    private String outputFile = null;
    private SimObject simObject = null;

    public RunMain() {
    }

    public RunMain(String file) {
        outputFile = file;
    }

    public static void main(String[] args) throws Exception {
        new RunMain().doMain(args);
    }

    public void testMethod(){

    }

    public void blaMethod(){

    }

    public SimObject getResults(){
        return simObject;
    }

    public void doMain(String[] args) throws Exception {

        // do some stuff

    }  

    // write term and doc vectors to bin files
    void writeVectorStore() throws Exception{

        // do some stuff
    } 
}

我的问题是,当我现在想访问另一个项目中的方法时,我只能调用 main 方法或 doMain 方法。

RunMain run = new RunMain();
run.doMain(arguments);

这很好用

SimObject simObject = run.getResults();

这用“RunMain 类型的方法 getResults() 未定义”标记为红色

有人知道为什么会这样吗?

4

2 回答 2

1

我有两个想法:

  1. jar 文件包含已编译类的早期版本。
  2. 您使用早期版本的 jar 文件。

但是不可能只有一个类的一些公共方法可以访问一个 jar 文件。

于 2013-01-24T18:28:05.853 回答
0

有几件事要检查...

  1. 确保使用此 jar 文件的项目在类路径上没有自己的 RunMain 类版本。它将“覆盖” jar 文件中的 RunMain。如果有一个本地版本的类比没有方法 getResults(),那么你的编译器错误。
  2. 如果您已经在 .jar 文件上工作了一段时间.. 最好重新构建它以确保其中的代码是最新版本。有可能您创建了 jar,然后添加了一个方法,但没有重新创建 jar 文件。然后确保您的项目正在引用新的 jar 文件。
于 2013-01-24T18:27:56.713 回答