【问题标题】:Install Tomcat 5.0.28 failed安装 Tomcat 5.0.28 失败
【发布时间】:2010-10-15 01:25:54
【问题描述】:

我正在使用 tomcat5.0.28 windows installer ,它停在进度条的中间。 最后一条消息“使用 jvm:c:\java\j2sdk1.4.2_19\” 我等了很久,好像卡住了,我要杀掉进程。

我使用进程资源管理器来检查进程。我找到了一个tomcat安装程序创建的子进程,我检查了这个进程的属性,发现命令行是:

C:\TEMP\nse305.tmp\ns306.tmp "C:\Program Files\Apache Software Foundation\Tomcat5.0\bin\tomcat5.exe" //IS//Tomcat5 -- DisplayName "Apache Tomcat" --Description "Apache Tomcat 5.0 Server -http://jakarta.apache.org/tomcat/" --LogPath "C:\Program Files\Apache Software Foundation\Tomcat 5.0\logs" --Install " C:\Program Files\Apache Software Foundation\Tomcat 5.0\bin\tomcat5.exe" --Jvm "$2"'

我复制了这个长命令行,并尝试在 cmd windows 中运行它,它显示一些 tomcat 安装服务消息,然后它冻结,进程根本不返回。

我认为是问题所在,这个子进程不返回,阻止了 tomcat 的安装。

我下载了 tomcat5.0.28 源代码并转到 tomcat5.nsi 文件。(安装脚本文件),发现它正在尝试运行:

nsExec::ExecToLog '"$INSTDIR\bin\tomcat5.exe" //IS//Tomcat5 --DisplayName "Apache Tomcat" --Description "Apache Tomcat @VERSION@ Server - @987654321 @" --LogPath "$INSTDIR\logs" --Install "$INSTDIR\bin\tomcat5.exe" --Jvm "$2"'

看起来安装程序使用 nsExec,一个运行命令的库。

我找到了C:\TEMP\nse305.tmp\ns306.tmp,在同一个文件夹下,还有一个nsExec.dll文件。 我将 ns306.tmp 与 nsExec.dll 进行了比较。它们之间有一点区别,只有几个字节,99%是一样的,所以我认为这个tmp文件实际上是nsExec.dll的变种。

我猜是 nsis 引擎创建了这个临时文件夹和临时文件,并用它来运行命令行,我不清楚 NSIS 引擎和 NsExec 是如何工作的,但我认为他们这次不能很好地工作我的电脑,可能是我电脑的问题。

但是为什么这个过程永远不会返回?谁能给我一点线索?

(我也试过运行tomcat6.0安装程序,效果很好,没问题)

【问题讨论】:

    标签: java tomcat nsis


    【解决方案1】:

    不确定这是否相关,但我隐约记得当我将 Tomcat 安装在包含空格的路径上时遇到了问题。 IE。 C:\Program Files 中的 Tomcat 安装路径中“程序”和“文件”之间的空格可能是导致问题的原因。

    不过,我可能完全偏离了轨道。让我们知道这是否有帮助。

    【讨论】:

      【解决方案2】:

      我同意 tim_wonil 的观点,即问题可能是某个地方的错误路径。

      就 nsExec 而言,.dll 文件通常是 NSIS 插件,并且 nsExec 插件会复制自身和复制的补丁,因此它将作为程序而不是 dll 运行。可以找到nsExec源码@NSIS SCM

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-14
        • 1970-01-01
        • 2013-02-24
        • 1970-01-01
        • 2018-03-06
        • 2017-08-14
        相关资源
        最近更新 更多