私の教授は、コマンドプロンプトで実行できるが、NetBeansを使用して開くこともできるJavaプログラムを作成するように依頼しました。
プログラムは、さまざまな種類の並べ替え(特に、選択、挿入、交換、クイック、およびヒープの並べ替え)を使用することを目的としています。私たちの教授は特に、Javaでオブジェクト指向プログラミングを使用するように言っており、彼女はメインクラスと並べ替えを行うさまざまなクラスを見たいと思っています。
NetBeansでプログラムを作成しようとしました—後でjavacを使用してcmdでプログラムを単に実行できると思いました。
Cmdで、NetBeansプロジェクトが保存されているパスを入力し、javacを使用してファイルをコンパイルしようとしました。しかし、「 'javac'は、内部または外部のコマンド、操作可能なプログラム、またはバッチファイルとして認識されません。」
そのため、Sun> sdk> jdk> binにファイルを保存しようとし、そこからファイルをコンパイルしようとしましたが、問題ありませんでした。それらを実行しようとしたときに問題が発生します。
これが私がファイルをコンパイルしようとした方法です:
javac Main.Java
Sortchoice.Java
Selection.Java
SelectionSort.Java
Insertion.Java
InsertionSort.Java
Exchange.Java
ExchangeSort.Java
(次の2つの並べ替えの構文はまだ完成していません。)
これが私がcmdでファイルを実行しようとした方法です:
Java Main Sortchoice Selection SelectionSort Insertion InsertionSort Exchange ExchangeSort
そしてcmdは言う:
exception in thread "main" Java.lang.NoClassDefFoundError: main (wring name: myjava/Main)
at Java.lang.ClassLoader.defineClass1(Nativ... Method)"
at Java.lang.ClassLoader.defineClass(ClassL...
at Java.security.SecureClassLoader.defineCl...
at Java.net.URLClassLoader.defineClass(URLC...
at Java.net.URLClassLoader.access$000(URLCl...
at Java.net.URLClassLoader$1.run(URLClassLo...
at Java.security.AccessController.doPrivile... Method)
at Java.net.URLClassLoader.findClass(URLCla...
at Java.lang.ClassLoader.loadClass(ClassLoa...
at Sun.misc.Launcher&AppClassLoader.loadCla...
at Java.lang.ClasLoader.loadClass(ClassLoad...
at Java.lang.ClassLoader.loadClassInternal(...
私は何をすべきか? (長距離の説明で申し訳ありません。できるだけ多くの詳細を入力したかっただけです。)
また、Javaプログラミングの初心者であることも強調しておきます。
NetBeans内で[ビルド]をクリックすると、(コンパイラの出力で)「このアプリケーションをコマンドラインからAntなしで実行するには、次のことを試してください:Java -jar yourPathToRun "」のようなメッセージが表示されます。
それを行う最善の方法はこれです:
1)src\
およびtests\
を含むディレクトリを作成します(JUnitを使用していない場合、テストはオプションです)。
2)ファイルの先頭にpackage myjava;
があると仮定します(これが教授の望みどおりであることを確認します。適切な場所にない場合、マークを付けるのが面倒になります)。src\myjava
ディレクトリ(JUnitを実行している場合はtests\myjava
ディレクトリ)。
3)ファイルをsrc\myjava
ディレクトリにコピーします
4)NetBeansプロジェクトを削除し、既存のソースを使用して新しいプロジェクトとして再作成します。 src
(およびオプションのtest
)ディレクトリを設定する場合は、src\
(およびオプションでtests\
)ディレクトリを追加します。 src\myjava
ディレクトリを追加しないでください。追加すると、NetBeansでは機能しません。
5)classes\
というディレクトリを作成します(つまり、src\
、classes\
、そしておそらく\tests
がすべて同じ場所にあります)。
6)コマンドラインでjavac -d classes -cp classes src/myjava/*.Java
と入力します
-d
は、.classファイルを配置する場所をコンパイラーに指示します-cp
は、コンパイラにクラスファイルを探す場所を指示しますsrc/myjava/*.Java
は、src/myjava
内のすべての.Javaファイルをコンパイルするように指示します7)Java -cp classes myjava.Main
経由で実行します
-cp
classesは、classesディレクトリで.classファイルを探すように指示しますmyjava.Main
は実行するクラスの名前です実行するには、必要なのは
Java Main
すべてのクラスをコマンドラインに置く代わりに。
.Javaファイルでパッケージを宣言しましたか?お気に入り、
パッケージmyjava;
?その場合、コマンド文字列は
Java myjava.Main
それはあなたの質問に答えますか?
[マイコンピュータ]> [プロパティ]> [詳細]> [環境変数]を右クリックし、jdkのbinディレクトリをパス変数の例に追加します。変数名:パス変数値:C:\ Program Files\Java\jdk1.6.0_16\bin
Javaとjavacは、コマンドプロンプトのどのディレクトリからでも動作するはずです。
次の手順に従ってください(コード例は単なる例であり、設定に合わせて調整する必要があります)。
Java_HOMEをJDKがインストールされているディレクトリに設定します。
set Java_HOME = "c:\ Program Files\Java\jre1.6.0_12"
Java_HOMEのbin
ディレクトリを含むようにPATHを設定します。
pATH =%PATH%:%Java_HOME%\ binを設定します
ソースコードのルートディレクトリに移動します。コードがパッケージ内にあると宣言した場合、これはパッケージ構造のルートディレクトリです。そうでない場合、これは.Javaファイルを含むディレクトリです。
cd c:\ My\Source\Directory
Java filesを引数として指定してjavacを実行します。
javac Class1.Java Class2.Java
(すべてが正しくコンパイルされていると想定)mainメソッドを含むクラスの名前を引数としてJava
を実行します(パッケージ宣言を含めた場合、クラス名は完全に修飾されているため、前にパッケージ名を含める必要がありますクラス名。パッケージ名とクラス名を「。」で区切ります):
Javaメイン
どこかにフォルダを作成します(例:C:\myjava
)。たとえば、netbeansが.Java
に保存した場所からC:\Java
ソースファイルをコピーします。貼り付けたばかりのこれらの.Java
ファイルをそれぞれ開き、パッケージを示す行を削除します(例:package myjava
)。 javac
を使用してコンパイルします。 javac c:\myjava\MyJava.Java
。次に、Java c:\myjava\MyJava
これを行う最も簡単な方法は、プロジェクトのメインフォルダーの下のdist
フォルダーにある.jar
ファイルを実行することです。コンピューターのbin
、Environmental Variables
のjdk System
フォルダーへのパスが、jar.exe
、Java.exe
、javac.exe
などの通常のものを見つけるように設定されていることを確認します(必要に応じて、このスレッドの他の投稿を参照してください)それを行うための指示)。
1)Netbeansでクリーンビルドを実行するには、F11
を押すか、Run
メニューをクリックしてBuild Project
をクリックします。クリックしてすべてのプロンプトを通過します。これを行うには、クリーンビルドが必要です。
2)コマンドプロンプトで、プロジェクトのdist
フォルダーに移動します
3)コマンドラインで次のように入力して実行します:Java -jar yourMainFile.jar
個別のフォルダーの作成、ファイルのコピー、コマンドライン引数に含める複数のファイルはありません。ただし、コードを変更するたびに、コマンドラインで実行する前にプロジェクトを再ビルドする必要があります。