38

以前に投稿された質問を読みました。あいまいなものもあり、私の問題を解決したものはないので、もう一度質問する必要があります.

私は2つの簡単なクラスを持っています、

package One;
import One.Inner.MyFrame;
public class test
{
    public static void main(String args[])
    {
        MyFrame f= new MyFrame();
    }
}

そしてもう一つのクラスは、

package One.Inner;
import java.awt.*;
import javax.swing.*;

public class MyFrame extends JFrame
{
    public MyFrame()
    {
        setPreferredSize(new Dimension(400,560));
        setVisible(true);
    }
}

Windows cmd のベース フォルダ「basic」にいます。を使用してコンパイルします

basic> javac *.java -d .

フォルダーとサブフォルダーが作成されます。

cd One
basic\One> java test

これにより、大量のエラーが生成されます。機能しなかったフルパスを指定するように指示された多くの回答。私のクラスは One にあるため、 -cp を使用して One を指定しても機能しませんでした。

4

5 に答える 5

61

次のように実行します。

java One.Test

...しかし、ディレクトリからではなく、ルートディレクトリ(basic)から。常に完全修飾クラス名を指定します。One

ああ、Java のパッケージ名は小文字にする必要があるため、oneandone.innerではなくOneandにする必要がありOne.Innerます。単なる慣習ですが、ほとんどの人が従うものです。

于 2013-10-17T17:29:43.030 に答える
20

ディレクトリが次の場合:

basic\One

パッケージのベース ディレクトリから Java を実行します。

basic>java One.test or basic>One.test <optional arguments>

(理想的には、パッケージは小文字で、クラスは大文字です):

basic>java one.Test

「存在しません」というメッセージが表示された場合、java コマンドは、クラスで参照されているクラスを見つけることができません。-cp オプションを使用してそれらを指定できます (「.」は「ここ」を意味し、Windows では「;」、Linux では「:」で区切って好きなだけ場所を追加できます)。

basic>java -cp . one.Test
or
basic>java -cp .;..\..\someJar.jar;c:\someDirectory\classesDirectory  one.Test
于 2014-12-08T23:41:49.770 に答える