【问题标题】:Error: Could not find or load main class xxx Linux错误:无法找到或加载主类 xxx Linux
【发布时间】:2013-07-18 13:58:21
【问题描述】:

我对linux环境很陌生。

我正在尝试在 linux 环境中运行一个简单的 hello world java 类。

你好.java

 package com.util;

    public class Hello {

        /**
         * @param args
         */
        public static void main(String[] args) {
            System.out.println("hi");

        }

    }

我已经在windows环境下编译了java类,并将.class文件上传到linux系统到/home/scripts路径下。

我的命令如下,

java -cp /home/scripts com.util.Hello

当我从 Hello.class 所在的同一个 /home/scripts 执行此命令时,

错误:无法找到或加载主类 com.util.Hello 并且无法继续进行。

有人可以帮我解决这个问题吗?

【问题讨论】:

  • 是“我的类”是java文件还是类文件?
  • 你是先编译的吗? (javac)
  • 我在windows环境下编译好了,把class文件上传到linux系统,com.util.Hello是.class文件
  • 您的hello.class 文件到底在哪里?请给它完整的文件路径,并编辑您的问题以改进它...

标签: java linux shell


【解决方案1】:

首先你必须生成你的 .class 文件:

javac ./hello.java

该命令生成了 hello.class 文件 在你可以运行你的类文件之后! :)

java 你好

【讨论】:

    【解决方案2】:

    您的.class 文件不应驻留在/home/scripts/ 中,而应驻留在/home/scripts/com/util/ 中。看看this document,它解释了类路径、包和目录之间的关系。

    【讨论】:

    • 我已将类文件复制到 /home/scripts/com/util/ 路径中,我尝试了这个 java -cp /home/scripts com.util.Hello 但仍然观察到相同的错误
    【解决方案3】:

    使用终端导航到 /home/scripts

    javac com/util/Hello.java 
    

    然后

    cd /home/scripts
    java -cp . com.util.Hello
    

    或者,

    java -cp "/home/scripts" com.util.Hello   
    

    【讨论】:

      【解决方案4】:

      投反对票

      如果你想在你的类所在的当前工作目录中运行程序。

      java 提供了三个选项。

      第一个选项

      java -cp 测试器

      当前工作目录的第二个选项

      java -cp 。测试员

      第三个选项导出 CLASSPATH 变量

      导出 CLASSPATH=$CLASSPATH:。 (如果您的目录发生变化,这是最好的)或

      导出 CLASSPATH=$PWD

      导出 CLASSPATH=

      之后,您必须获取 bashrc 或 bashprofile。

      【讨论】:

        【解决方案5】:

        我们首先知道 javac 命令很好用。

        我也遇到了这个错误,我已经解决了。让我分享一下。

        首先我们需要在你的java代码中找到你的包的父路径。

        然后使用 java package + fileName cd 到该路径应该可以正常工作。

        【讨论】:

          【解决方案6】:

          我在 Windows 上遇到了完全相同的问题,我通过添加路径“。”解决了这个问题。到 CLASSPATH 和 PATH,也许你也可以在 Linux 上试试这个。

          【讨论】:

            【解决方案7】:

            在指定路径之前,请确保您仔细遵循这三件事, 1. 在指定路径之前关闭命令提示符窗口。 2.添加路径时,在末尾添加bin和分号, 3.如果JAVAC命令运行正常,试试java -cp class name。

            【讨论】:

              猜你喜欢
              • 2016-06-12
              • 2016-03-16
              • 2016-01-03
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多