只有jar文件中可以访问的方法

时间:2013-01-24 18:12:34

标签: java jar

我有一个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();

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

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

2 个答案:

答案 0 :(得分:1)

我有两个想法:

  1. jar文件包含已编译类的早期版本。
  2. 您使用的是早期版本的jar文件。
  3. 但是,不可能只有一个类的公共方法可以访问jar文件。

答案 1 :(得分:0)

要检查几件事......

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