は、ここに私の状況です: 私はフォルダ構造を持っている:Javaのパッケージ実行
C:\Users\user\Desktop\JavaTraining\Chapter3\examples.
例もフォルダです。今、私はpackageステートメントpackage Chapter3;
と第3章フォルダ内のファイル名Calculator.Java
を持っています。 javac Chapter3\Calculator.java
としてJavaTraining
ディレクトリからファイルをコンパイルしたので、コマンドラインIから、それはコンパイルされ、私は、ファイル生成Calculator.class
を参照してください。しかし、JavaTraining
ディレクトリからコマンドjava Chapter3.Calculator
を実行すると、それは私にerror: Could not find file or load main class Chapter3.Calculator
を投げた。
はその後、私はexamples
という名前Chapter3
にサブフォルダを作成し、例フォルダにCalculator.java
をコピーして、ルートフォルダ(第3章ディレクトリからコマンドを実行する)として、第3章を考えてファイルをコンパイルして実行してみました。エラーなし、ファイルは実行されました。
は誰もこれが起こったか、何その背後にある理由である、私は怒っつもりです、私を説明することができますしてください...
Calculator.java
はのprintsum機能からの和を見つけようと主な機能を持つだけでクラス電卓です2つの変数。
Iは、上記によるとhttp://stackoverflow.com/questions/18093928/what-does-could-not-find-or-load-main-class-mean
で提供の提案を経て、それは文法の間違いやPATH and CLASSPATH
環境変数を設定する(ファイルを実行しようとする方法)のいずれかでした。
私はCLASSPATH
変数が現在のディレクトリに設定されているかどうかを確認するためにecho %CLASSPATH%
を試しました。 JavaTraining
ディレクトリからechoコマンドを実行すると、.
が表示されました。 Chapter3フォルダをルートディレクトリとして試したときにファイルが実行されませんでしたが、第3章でサブフォルダを作成して第3章をルートディレクトリとして作成した場合、何が原因か何が問題なのでしょうか?
ここで、出力とコマンドラインは次のとおりです。
C:\Users\vikas\Desktop\JavaTraining>javac Chapter3\Calculator.java
C:\Users\vikas\Desktop\JavaTraining>java Chapter3.Calculator
Error: Could not find or load main class Chapter3.Calculator
C:\Users\vikas\Desktop\JavaTraining>cd Chapter3
C:\Users\vikas\Desktop\JavaTraining\Chapter3>javac examples\Calculator.java
C:\Users\vikas\Desktop\JavaTraining\Chapter3>java examples.Calculator
The sum is 30
C:\Users\vikas\Desktop\JavaTraining\Chapter3>
Calculator.javaファイル:
// One Package Statement
package chapter3;
// The file in Chapter 3 folder, file in example folder has
//package examples;
// One or more import statements
import java.io.*;
import java.util.*;
// Class Declaration
public class Calculator {
// State. Variables and Constants
int i=10;
long k = 20;
// Behavior, one or more methods
void printSum(){
long sum;
sum = i+ k;
System.out.println("The sum is " + (i+k));
}
public static void main (String[] args) {
Calculator c = new Calculator();
c.printSum();
}
}
パッケージに電卓ですか? – matt
クラスパスはパッケージ階層の最上位に設定する必要があります。 '.'に設定されている場合は、そこからjavaを呼び出すか、クラスパスに' cp'の – pvg
をJavaTrainingパッケージから設定する必要があります。 javac第3章\ Calculator.javaと java第3章\電卓 – LeTex