错误:无法找到或加载主类xxx Linux

时间:2013-07-19 10:05:30

标签: java linux shell

我对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而无法继续进行。

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

7 个答案:

答案 0 :(得分:11)

使用终端

导航到/ home / scripts
javac com/util/Hello.java 

然后

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

或者,

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

答案 1 :(得分:2)

首先,您必须生成.class文件:

javac ./hello.java

此命令已生成hello.class文件 然后你可以运行你的类文件! :)

java hello

答案 2 :(得分:1)

向下投票

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

java提供了三个选项。

第一个选项

java -cp Tester

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

java -cp。测试仪

第三个选项导出CLASSPATH变量

export CLASSPATH = $ CLASSPATH:。 (如果目录更改,这是最好的一个)或

export CLASSPATH = $ PWD

导出CLASSPATH =

之后你必须使用bashrc或bashprofile。

答案 3 :(得分:1)

我们首先知道javac命令工作得很好。

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

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

然后使用java package + fileName cd到那个路径应该在那一刻运行良好。

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

在指定路径之前,请确保您仔细遵循这三个方面, 1. 在指定路径之前,关闭命令提示符窗口。 2.当添加路径时,在末尾添加bin和分号和 3.如果JAVAC命令正常工作,请尝试java -cp类名。