web-dev-qa-db-ja.com

エラー:メインクラスxxx Linuxを検出またはロードできませんでした

私はLinux環境に非常に慣れていません。

単純なhello worldを実行しようとしていますJava Linux環境でクラスです。

こんにちは。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が見つからないか、ロードできなかったため、先に進むことができませんでした。

誰かがこの問題で私を助けることができますか?

9
user1660325

ターミナルを使用して/ home/scriptsに移動します

javac com/util/Hello.Java 

その後

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

または、

Java -cp "/home/scripts" com.util.Hello   
11
Shashi

最初に、.classファイルを生成する必要があります。

javac ./hello.Java

このコマンドでhello.classファイルが生成されました。クラスファイルを実行できます。 :)

Javaこんにちは

2
L. Quastana

反対票

クラスが存在する現在の作業ディレクトリでプログラムを実行する場合。

Javaには3つのオプションがあります。

最初のオプション

Java -cpテスター

現在の作業ディレクトリの2番目のオプション

Java -cp。テスター

3番目のオプションはCLASSPATH変数をエクスポートします

cLASSPATH = $ CLASSPATH:をエクスポートします。 (これは、ディレクトリが変更された場合に最適です)または

エクスポートCLASSPATH = $ PWD

または

エクスポートCLASSPATH =

その後、bashrcまたはbashprofileをソーシングする必要があります。

1
user1651008

Windowsでもまったく同じ問題が発生しました。パス "。"を追加することで解決しました。 CLASSPATHとPATHの両方に、Linuxでもこれを試すことができます。

1
Zinan Xing

最初にjavacコマンドがうまく機能することを知っています。

私もこのエラーに遭遇し、これを解決しました。これを共有しましょう。

最初に、Javaコードでパッケージの親パスを見つける必要があります。

次に、Javaパッケージ+ fileNameを使用してそのパスにcdします。その時点でうまく機能するはずです。

1
James Liu

.classファイルは/home/scripts/ではなく/home/scripts/com/util/に置く必要があります。クラスパス、パッケージ、ディレクトリの関係を説明する このドキュメント を見てください。

0
mthmulders

パスを指定する前に、次の3つを注意深く実行するようにしてください。1。コマンドプロンプトウィンドウを閉じます、パスを指定します。パスを追加するとき、ビンとセミコロンを最後に追加しますおよび3. JAVACコマンドが正しく機能している場合は、Javaを試してください- cpクラス名。

0
Chaitanya