【问题标题】:"Could not find the main class. Program will exit"“找不到主类。程序将退出”
【发布时间】:2008-09-23 12:28:54
【问题描述】:

我正在尝试运行 SQuirreL SQL。
我已经下载并安装了它,但是当我尝试运行它时,我收到以下错误消息:

Java 虚拟机启动器。
找不到主类。
程序将会退出。

我明白了这一点,但我不知道如何解决它。有什么帮助吗?

更多信息:

  • 我使用的是 Windows XP 专业版。
  • 我已安装 java 1.6,其他应用程序运行正常。
  • 安装运行正常。
  • 我相信我正确地遵循了安装说明。
  • 为了运行它,我调用了 squirrel-sql.bat 文件。

更新

这个问题:"Could not find the main class: XX. Program will exit." 从 Java 开发人员的角度给出了有关此错误的一些背景信息。

【问题讨论】:

  • “尝试运行它”到底是什么意思?您输入的具体命令/执行的用户界面操作是什么?
  • 20k 浏览量,0 票。哇。
  • 一票!有人对我的问题进行了投票!时隔2年4个月,浏览量近4万,终于拿到一票!万岁!
  • @AJ,他们有徽章吗? :D
  • @aitchnyu,我认为他们应该,不是吗?

标签: java squirrel-sql


【解决方案1】:

您的计算机上是否安装了 Java?是否正确设置了其 bin 目录的路径(换句话说,如果您从命令行键入“java”,您会返回指令列表还是得到类似“java 未被识别为......”的内容? )?

您可以尝试从命令行(从 squirrel sql 目录)运行squirrel-sql.jar,使用:

java -jar squirrel-sql.jar

【讨论】:

  • 是的。安装了java。其他 java 应用程序工作正常。按照您的建议仅运行 java -jar squirrel-sql.jar 可以达到一定程度,但它不会获取任何数据库驱动程序(JDBC 除外)。嗯。
  • 整个早上我的 shell squirrel-sql.bat 都不起作用。 (我不知道的魔法)。错误 java -jar 工作得很好。为你走出炼狱的一天。谢谢
  • 谢谢,它成功了。顺便说一句,为什么 ./squirrel-sql.sh 不起作用?
【解决方案2】:

类路径是系统在尝试查找您尝试运行的类时将遵循的路径。在您尝试执行的批处理文件中,它可能有一个变量,如 CLASSPATH=blah;blah;etc 或一个看起来类似于

的 java 命令
java -classpath "c:\directory\lib\squirrel-sql.jar" com.some.squirrel.package.file

如果您可以找到或添加该类路径设置,请确保它包含指向 squirrel-sql.jar 和它可能依赖的任何其他 jar 文件的路径,以分号分隔(或根 /lib 目录可能是包含在安装中)。

基本上,您只需要告诉 java 在哪里可以找到您尝试执行的类文件。维基百科对类路径有更深入的讨论,可以为您提供更多见解。 http://en.wikipedia.org/wiki/Classpath_(Java)

【讨论】:

  • -classpath 。另外为我解决了它。因为我在 Linux 中,所以我输入了 CLASSPATH="。"并将其添加到我的 .profile 中。对于 Windows,键入:SET CLASSPATH="."然后按 Return/Enter。
【解决方案3】:
  1. 必须设置JAVA_HOME变量,指向prog文件/java/version???/bin
  2. 用一些文本编辑器打开 squirrel-sql.bat 文件,查看 JAVA_HOME 变量是否与环境变量中的相同
  3. 如果不匹配则更改它....然后再次运行 bat 文件

【讨论】:

    【解决方案4】:

    您是否按照以下说明进行操作:

    http://www.squirrelsql.org/#installation

    如果是这样,您是运行批处理文件还是运行 shell 脚本?

    【讨论】:

      【解决方案5】:

      调整 MB 对 windows 的回答,将摆脱控制台窗口:

      start javaw -jar squirrel-sql.jar
      

      【讨论】:

        【解决方案6】:

        .bat 文件似乎不起作用。

        只需双击:

        squirrel-sql.jar
        

        或输入:

        java -jar squirrel-sql.jar
        

        在命令行中。

        【讨论】:

          【解决方案7】:

          您可以放置​​ .;在环境变量的类路径中来克服这个问题。

          【讨论】:

            【解决方案8】:

            我尝试启动 SQUirrel 3.1,但收到一条消息,指出“找不到主类 Files\Rational\ClearQuest\cqjni.jar”我注意到 C:\Program Files\Rational\ClearQuest\cqjni.jar 在我现有的由 Windows 环境变量 CLASSPATH 定义的类路径。

            SQUirrel 不需要我现有的类路径,因此我更新了 SQUirrel bat 文件 squirrel-sql.bat。

            REM SET SQUIRREL_CP=%TMP_CP%;%CLASSPATH%

            SET SQUIRREL_CP=%TMP_CP%

            它不再将我现有的类路径附加到它的类路径中并且运行良好。

            【讨论】:

              【解决方案9】:

              当我“升级”到 64 位的 Windows 7 时,我遇到了这个问题。我的 Java JRE 是 64 位 JVM。我的机器上有一个用于浏览器的 32 位 JRE,所以我设置了一个系统变量:

              JRE32=C:\Program Files\Java\jre7
              

              当我跑步时:

              "%JRE32\bin\java" -version
              

              我明白了:

              java version "1.7.0_51"
              Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
              Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode, sharing)
              

              这是一个 32 位的 JVM。否则会显示“Java HotSpot(TM) 64-Bit”。

              我编辑了“squirrel-sql.bat”文件,重新标记第 4 行并添加第 5 行,如下所示:

              (4) rem set "IZPACK_JAVA=%JAVA_HOME%"
              (5) set IZPACK_JAVA=%JRE32%
              

              现在一切正常,又好又漂亮。

              【讨论】:

                【解决方案10】:

                我在使用不同的应用程序 (BI Publisher) 时遇到了同样的问题,因为我在 64 位版本的 Windows 上安装了该应用程序的 32 位版本。

                Java Virtual Machine Launcher - could not find the main class
                

                我的案例的解决方案是告诉 BI Publisher 在哪里可以找到 x86 版本的 JRE:

                【讨论】:

                  猜你喜欢
                  • 2013-03-13
                  • 2011-11-28
                  • 2011-03-31
                  • 2010-11-27
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多