2017-08-02 4 views
0

.jarファイルのライブラリを使用して.java個のファイルをコンパイルします。このtopicに続いて、私の以前のGUIプログラムは正常に動作します。ただし、このコマンドラインプログラムは失敗します。メインクラスを見つけられませんでしたが、クラスが存在します。

$ /opt/jdk1.8.0_131/bin/javac -classpath lib/*.jar *.java 
$ ls 
Module1.class Cross.class Ora.java Safe.class 
Module1.java Cross.java p1/  Safe.java 
lib/   Ora.class  
$ grep main Module1.java 
    public static void main(String[] args) { 
$ ls lib 
jsoup-1.10.3.jar 
$ /opt/jdk1.8.0_131/bin/java -classpath .:lib/* Module1 
Error: Could not find or load main class Module1 

どうすれば修正できますか?

答えて

1

Module1.javaにはpackageステートメントがありませんか? packageステートメントがある場合、それはパッケージフォルダに移動する必要があり、私はクラスパスにワイルドカードをサポートしています知っているが、それはそのJava 6の内のどの番組追加のように見えませんでした

/opt/jdk1.8.0_131/bin/java -classpath .:lib/* package.Module1 

のようなコマンドで実行しますどのくらい私はコマンドラインからjavaを実行して以来。

質問している内容がわからない場合は、Module1.javaの本文を質問に追加してください。

+0

'package Moule1;'はすべてのjavaファイルの先頭に追加されます。あなたが見ることができるように、パッケージフォルダに移動する必要があるパッケージファイルはありません。 – mahmood

+0

パッケージのステートメントを削除しました。私は今パッケージが必要だとは思わない – mahmood

+0

パッケージがModule1の場合、クラスファイルはModule1ディレクトリになければならず、javaコマンドは \t '/opt/jdk1.8.0_131/bin/java -classpathになります。 :lib/* Module1.Module1' 慣習は、パッケージディレクトリに.javaファイルを作成し、コンパイラがクラスファイルを作成するときにパッケージのディレクトリ構造がすでに配置されているためです。あなたは簡単なテストプログラムのためのパッケージなしでうまくいくでしょうが、それがどのように使用できるかには限界があります。 –

関連する問題