【问题标题】:Having trouble starting Jenkins: "java.io.FileNotFoundException: /usr/share/java/jenkins/war/META-INF/MANIFEST.MF (No such file or directory)"无法启动 Jenkins:“java.io.FileNotFoundException:/usr/share/java/jenkins/war/META-INF/MANIFEST.MF(没有这样的文件或目录)”
【发布时间】:2016-08-13 06:14:15
【问题描述】:

我刚刚下载了 Jenkins WAR,版本 1.651.1。我正在尝试在我的 Amazon Linux 机器上进行设置。我正在运行 Java 1.7。我将 WAR 移动到它自己的目录 /usr/share/java/jenkins,然后将 JENKINS_HOME 设置为该目录。然后我运行了这里列出的命令——https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins。在网站上看起来很简单。但是你不知道吗。出现以下错误

[davea@mydevbox ~]$ java -jar /usr/share/java/jenkins/jenkins.war 
Running from: /usr/share/java/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
Apr 19, 2016 9:29:34 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Apr 19, 2016 9:29:34 PM winstone.Logger logInternal
INFO: Winstone shutdown successfully
Apr 19, 2016 9:29:34 PM winstone.Logger logInternal
SEVERE: Container startup failed
java.io.FileNotFoundException: /usr/share/java/jenkins/war/META-INF/MANIFEST.MF (No such file or directory)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
    at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:280)
    at winstone.HostConfiguration.<init>(HostConfiguration.java:83)
    at winstone.HostGroup.initHost(HostGroup.java:66)
    at winstone.HostGroup.<init>(HostGroup.java:45)
    at winstone.Launcher.<init>(Launcher.java:145)
    at winstone.Launcher.main(Launcher.java:356)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at Main._main(Main.java:307)
    at Main.main(Main.java:98)

我还需要做什么才能让 Jenkins 入门?

编辑:输出以响应给出的建议...

[davea@mydevbox ~]$ sudo useradd jenkins
[davea@mydevbox ~]$ sudo chown -R jenkins:jenkins /usr/share/java/jenkins/jenkins.war 
[davea@mydevbox ~]$ 
[davea@mydevbox ~]$ sudo su - jenkins
[jenkins@mydevbox ~]$ java -jar /usr/share/java/jenkins/jenkins.war
Running from: /usr/share/java/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
Apr 21, 2016 4:46:08 PM winstone.Logger logInternal
INFO: Beginning extraction from war file
Apr 21, 2016 4:46:08 PM winstone.Logger logInternal
INFO: Winstone shutdown successfully
Apr 21, 2016 4:46:08 PM winstone.Logger logInternal
SEVERE: Container startup failed
java.io.FileNotFoundException: /usr/java/jboss/standalone/deployments/jenkins.war/war/META-INF/MANIFEST.MF (No such file or directory)
    at java.io.FileOutputStream.open(Native Method)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
    at java.io.FileOutputStream.<init>(FileOutputStream.java:171)
    at winstone.HostConfiguration.getWebRoot(HostConfiguration.java:280)
    at winstone.HostConfiguration.<init>(HostConfiguration.java:83)
    at winstone.HostGroup.initHost(HostGroup.java:66)
    at winstone.HostGroup.<init>(HostGroup.java:45)
    at winstone.Launcher.<init>(Launcher.java:145)
    at winstone.Launcher.main(Launcher.java:356)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at Main._main(Main.java:307)
    at Main.main(Main.java:98)

【问题讨论】:

    标签: linux jenkins amazon startup


    【解决方案1】:

    我认为这是与权限相关的问题。

    我猜用户和组所有者设置为与 jenkins 尝试运行的用户不同的用户。尝试正确设置:

    $sudo chown -R <jenkins_user><jenkins_group> /usr/share/java/jenkins/
    

    【讨论】:

    • 我编辑了我的问题以显示执行您建议的结果。同样的错误。我在我的系统上创建了一个 jenkins 用户,虽然我不确定为什么这会解决问题。
    【解决方案2】:

    “java.io.FileNotFoundException: /usr/share/java/jenkins/war/META-INF/MANIFEST.MF(没有这样的文件或目录)”

    伙计们冷静一下。

    只需运行下面的命令。

    mkdir /var/cache/jenkins;chown jenkins:jenkins /var/cache/jenkins;

    然后启动应用程序。

    【讨论】:

      【解决方案3】:

      我遇到了完全相同的问题。无法更改用户,我通过将 --httpPort=9090 附加到我的 java 运行命令来更改托管端口。

      $ java -jar /usr/share/java/jenkins/jenkins.war --httpPort=9090

      【讨论】:

        【解决方案4】:

        我的两分钱:jenkins 用户不仅必须是$JENKINS_HOME所有者,看起来它还必须是jenkins.war所有者(不仅可以访问它)。在为 Jenkins 配置 sytemd 单元文件时发现了困难。

        【讨论】:

          【解决方案5】:

          您使用的用户 ID 可能不是 JENKINS_HOME 的所有者。

          当我尝试在 vagrant 拥有的 JENKINS_HOME 上使用 jenkins 用户时,这发生在我身上。 jenkins确实JENKINS_HOME有写权限,但这还不够:它必须是所有者。

          我之所以知道这一点,是因为当我尝试sudo -u jenkins touch file-in-jenkins-home 时,我得到了touch: setting times (...): Operation not permitted。然后我找到了https://unix.stackexchange.com/questions/64848/cannot-touch-m-a-writable-file

          【讨论】:

            【解决方案6】:

            就我而言,我遇到了这个问题,因为我的 Mac 上已经创建了一个名为“jenkins”的用户。

            之后:

            1. 使用 '/Library/Application Support/Jenkins/Uninstall.command' 卸载损坏的 Jenkins,
            2. 删除“jenkins”用户,
            3. 并从https://jenkins.io/download 重新安装

            -->一切顺利。

            【讨论】:

              【解决方案7】:

              从 /var/cache/jenkins 意外删除缓存后,我遇到了同样的问题。我通过在 /var/cache/ 中手动创建 jenkins 文件夹来解决它,该文件夹具有与 /var/lib/jenkins 中相同的权限并且它有效。

              【讨论】:

                【解决方案8】:

                我有一个旧的jenkins 1.641版本,运行时下载了2.240.1的war文件

                java -jar jenkins.war
                

                我遇到了类似的错误:

                java.io.FileNotFoundException: c:\jenkins.jenkins\war\META-INF\MANIFEST.MF(访问被拒绝) 在 java.io.FileOutputStream.open0(本机方法) 在 java.io.FileOutputStream.open(未知来源) 在 java.io.FileOutputStream.(未知来源) 在 java.io.FileOutputStream.(未知来源) 在 winstone.HostConfiguration.getWebRoot(HostConfiguration.java:278) 在 winstone.HostConfiguration.(HostConfiguration.java:81) 在 winstone.HostGroup.initHost(HostGroup.java:66) 在 winstone.HostGroup.(HostGroup.java:45) 在 winstone.Launcher.(Launcher.java:172) 在 winstone.Launcher.main(Launcher.java:362) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 Main._main(Main.java:375) 在 Main.main(Main.java:151) 2020-02-07 22:06:19.010+0000 [id=1] SEVERE winstone.Logger#logInternal: 容器启动 java.io.FileNotFoundException 失败: c:\jenkins.jenkins\war\META-INF\MANIFEST.MF(访问被拒绝) 在 java.io.FileOutputStream.open0(本机方法) 在 java.io.FileOutputStream.open(未知来源) 在 java.io.FileOutputStream.(未知来源) 在 java.io.FileOutputStream.(未知来源) 在 winstone.HostConfiguration.getWebRoot(HostConfiguration.java:278) 在 winstone.HostConfiguration.(HostConfiguration.java:81) 在 winstone.HostGroup.initHost(HostGroup.java:66) 在 winstone.HostGroup.(HostGroup.java:45) 在 winstone.Launcher.(Launcher.java:172) 在 winstone.Launcher.main(Launcher.java:362) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 Main._main(Main.java:375) 在 Main.main(Main.java:151)

                发现文件夹c:\jenkins\.jenkins\war不存在。

                手动创建文件夹后,新的 Jenkins 就可以工作了。

                【讨论】:

                  猜你喜欢
                  • 2013-11-30
                  • 2018-06-04
                  • 2013-01-17
                  • 1970-01-01
                  • 2018-12-27
                  • 1970-01-01
                  • 2020-07-08
                  • 1970-01-01
                  • 2016-12-06
                  相关资源
                  最近更新 更多