java - 从 java 代码运行 jar 文件

标签 java jar jetty

我试图从 java 代码运行 jar 文件,但它不起作用。 我已经尝试了运行时和 ProcessBuilder,但它无法启动。 该 jar 是 Jetty Web 服务器的 start.jar 文件

请问有什么帮助吗?

最佳答案

我不知道你的用例,但我认为你正在尝试启动 Jetty 服务器,以我的愚见,这种情况的最佳选择是使用 Jetty 作为依赖项。请将该 jar 文件放入您的类路径中,并将这些行添加到您的代码中。

import org.eclipse.jetty.server.Server;

public class App {
    public static void main(String[] args) throws Exception {
        Server server = new Server(8080);
        server.start();
        server.join();
    }
}

以及运行时,

String directory = "[jetty directory]";
String format = "/usr/bin/java -Djetty.logging.dir=%s/logs -Djetty.home=%s -Djetty.base=%s -Djava.io.tmpdir=/tmp -jar %s/start.jar jetty.state=%s/jetty.state jetty-logging.xml jetty-started.xml";

Process process = Runtime.getRuntime()
                     .exec(String.format(format, directory, directory, directory, directory, directory));

process.waitFor();

关于java - 从 java 代码运行 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36647944/

相关文章:

java - 将外部属性文件添加到类路径

java - Intellij IDEA 插件 - 未调用 PersistentStateComponent loadState

java - setExpectContinueEnabled 是什么意思?

java - 访问与主代码不同的 JAR 文件中的资源

java - 以函数作为参数的 dll 的函数(Callback Java)

java - 如何获取当前执行的 jar 文件所在的目录?

Java 7u45 安全属性 ClassNotFoundException list

java - 在 Java 6 上运行 Jetty 9

ssl - 如何配置 Camel jetty 生产者端点以使用 SSL 证书

eclipse - 使用 Gradle+Eclipse 在 Jetty 上启用热部署的最佳方式