tomcat外部的jar文件Webapp没有执行

时间:2014-01-22 10:58:44

标签: java linux file

我已经在Tomcat 7上部署了我的Rest API。

它部署在以下路径:

/var/lib/tomcat7/webapps/myproject

我有一个Jar文件保存在这个位置:

/home/user/executor/datacollector.jar

从我的应用程序运行此jar时出现问题。使用此代码调用时它没有运行。

我运行它的代码是:

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "/home/user/executor/datacollector.jar");


Process p = pb.start();
ResultStream resultStream = new ResultStream(p.getInputStream());
Thread thread = new Thread(resultStream , "resultStream");
thread.start();


public class ResultStream implements Runnable {

private static Logger logger = Logger.getLogger("ResultStream");

private BufferedReader reader;

public ResultStream(InputStream is) {
    this.reader = new BufferedReader(new InputStreamReader(is));
}

public void run() {
    try {
        String line = reader.readLine();

        logger.info("line - "+line);

        while (line != null) {
           logger.info(line);
            line = reader.readLine();
        }
        reader.close();
    } catch (IOException e) {
        logger.error("IOException in executing jar",e);
       // e.printStackTrace();
    }
    catch (Exception e) {
        logger.error("Error in executing jar",e);
       // e.printStackTrace();
    }
}

}

路径中是否有任何错误,因为它位于Tomcat的webapps文件夹之外。

请指出我的错误。

1 个答案:

答案 0 :(得分:0)

如果您的tomcat实例由另一个用户(例如单独的“tomcat”用户)运行,则它可能无权访问[user's]主目录中的文件。

尝试将jar(以及java代码中的引用路径)移动到tomcat目录中的“lib”文件夹。