【问题标题】:Jetty 8 Server Startup using only Command PromptJetty 8 服务器启动仅使用命令提示符
【发布时间】:2014-10-03 14:08:35
【问题描述】:

我是使用 Jetty 服务器的新手。要启动Jetty v8.1 使用命令提示符,我需要导航到jetty-distribution-8.1.16.v20140903 文件夹并运行命令:java -jar start.jar

如果我没有导航到 jetty-distribution-8.1.16.v20140903 文件夹并尝试使用以下命令启动命令:java -jar C:\jetty-distribution-8.1.16.v20140903\start.jar,那么我会得到一个 FileNotFoundException

java.io.FileNotFoundException: No XML configuration files specified in start.con
fig or command line.
        at org.eclipse.jetty.start.Main.start(Main.java:502)
        at org.eclipse.jetty.start.Main.main(Main.java:96)

Usage: java -jar start.jar [options] [properties] [configs]
       java -jar start.jar --help  # for more information

启动服务器时它会查找哪些文件?请让我知道如何在不导航到分发文件夹的情况下启动码头服务器。

编辑:

当我尝试这个命令时:

java -Djetty.home= C:\jetty-distribution-8.1.16.v20140903 -jar C:\jetty-distribution-8.1.16.v20140903/start.jar

我收到以下错误:

Caused by: java.lang.ClassNotFoundException: C:\jetty-distribution-8.1.16.v20140
903
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: C:\jetty-distribution-8.1.16.v20140903.  Program
will exit.

请提出建议。

【问题讨论】:

    标签: java jetty command-prompt


    【解决方案1】:

    试试这个:

    java -Djetty.home=C:\jetty-distribution-8.1.15.v20140411 -jar C:\jetty-distribution-8.1.15.v20140411/start.jar
    

    【讨论】:

    • 我尝试通过修改命令来设置码头主页,得到 NoClassDefFoundError。 (用新命令和错误消息更新了帖子)请建议
    • 去掉-Djetty.home=之后的空格
    • 之间有一个空格:-Djetty.home= C:\
    • 谢谢;现在工作正常。请确认相同的命令是否也适用于更高版本的 jetty(例如 Jetty v9 等)。我的系统中没有 JDK 7,因此无法验证。
    • 使用 jetty9,我们需要像这样设置 jetty.base 和 jetty.home:java -Djetty.base=jetty-distribution-9.1.2.v20140210 -Djetty.home=jetty-distribution-9.1。 2.v20140210-jar jetty-distribution-9.1.2.v20140210/start.jar。更多信息,请查看:java -jar start.jar --help.
    【解决方案2】:

    根据 Jetty 文档Running Jetty,启动 Jetty 服务器的正确方法是:

    cd $JETTY_HOME
    java -jar start.jar
    

    您是否定义了$JETTY_HOME

    如果是这样,您可以编写一个包含上述命令的小脚本,例如名为RunJettyJetty。该脚本甚至还可以恢复当前目录...

    【讨论】:

    • Jetty 的 start.jar 不使用或查找名为 JETTY_HOME 的系统环境变量(只有 jetty.sh 会,您在示例中没有使用)
    • @Joakim 根据文档,这是启动 Jetty 的推荐方式......正是这两行
    • 是的,并且该文档中的引用仅是对磁盘上某个位置的引用,第二个您跳到假设环境变量需要存在的地方就是犯错的地方。
    • 好的,我修复了该文档,以免再次引起这种混乱。
    【解决方案3】:

    Jetty 8 的启动很古老,现在与 Jetty 9 大不相同。

    重要提示:Jetty 8 is soon EOL,强烈建议立即升级到 Jetty 9。

    对于 Jetty 8,${jetty.home} 路径是一切发生的地方(也就是您的 jetty-distribution 目录)。

    对于 Jetty 8,它会查找 ${jetty.home}/start.ini,然后开始构建命令行、xml 文件、属性、start.d OPTIONS 声明等来启动您的环境。

    对于 Jetty 9,这是完全不同的,${jetty.home} 未修改的分布和新的 ${jetty.base} 之间有明显的区别,您可以在其中为特定的码头实例配置。您甚至可以为不同的实例创建多个 ${jetty.base} 目录。甚至还支持分层的${jetty.base} 声明,以进一步分离组织中的角色(ops 将 jetty-dist 安装到公共 ${jetty.home},配置基础架构 ${jetty.base} 来处理日志记录和监控,并且应用程序是在它自己的${jetty.base},此时将所有 3 个组合起来形成实例使用的配置)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-11
      • 2014-10-28
      • 2017-11-05
      • 2021-06-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多