とても簡単なことですが、頭がよくありません。 StackOverFlowの投稿やインターネットをたくさん見てきました。
私の目標は、cmdを開き、Main.Javaをコマンドプロンプトで実行する.batを作成することです。簡単なことではありませんが、私はどのように混乱しましたか?
以下では、バッチファイルが実行する必要のある手順を記述しています。
私のファイルはすべての.Javaの隣にあるので、明示的なパスを指定する必要がないと想定しています。
これまでの研究による私の理解:
名前を付けて保存:name.bat
どんな助けでもありがたいです。ありがとうございました。
メモ帳を開く
書く
@echo off
javac Main.Java
Java Main
3.saveAs blahblah.bat
main.Javaがバッチファイルと共に存在し、Javaパスが環境変数に設定されていることを確認してください
4。バッチファイルをダブルクリックします。cmdを明示的に開く必要はありません。ttは.batの実行時に自身を開きます。
run.batに次の4行のコードが必要です。
@echo off //this makes it so you have an empty cmd window on startup
javac Main.Java //this compiles the .Java into a .class
Java Main // this runs the .class file
pause //this prevents the window from instantly closing after program end
メモ帳を開く
次のように入力します。
javac *
Java Main
SaveAs Main.batまたはバッチファイルに使用する任意の名前
Main.Javaがバッチファイルと同じフォルダにあることを確認してください
バッチファイルをダブルクリックして、Main.Javaファイルを実行します。
私はあなたの質問だけを理解していますか? Javaクラスファイルをコンパイルして実行するには、.batファイルが必要ですか?
.batファイルの場合。ダブルクリックするだけです。
.batファイルでは、javac Main.Java((バットにur Main.Javaへのパスが含まれていることを確認してください)が必要です)Java Main
コンパイルの警告/ステートメントをエコーしたい場合は、別のものが必要になります。しかし、あなたはそれを自動化したいので、多分あなたは最終的にそれを必要としません。
プレーンテキストファイルを(メモ帳を使用して)作成し、Javaファイルの実行に使用する正確な行をコマンドプロンプトで入力します。次に、拡張子を.batに変更すれば完了です。
このファイルをダブルクリックすると、Javaプログラムが実行されます。
JavacとJavaに1つずつファイルをお勧めします。これにより、何か問題がある場合のトラブルシューティングを行うことができます。
私も同様の状況に直面しており、javacを処理してからmy Javaプログラム)をJavaで処理できるスクリプトが必要だったので、このBATCHスクリプトを思いつきました。
:: @author Rudhin Menon
:: Created on 09/06/2015
::
:: Auto-Concrete is a build tool, which monitor the file under
:: scrutiny for any changes, and compiles or runs the same once
:: it got changed.
::
:: ========================================
:: md5sum and gawk programs are prerequisites for this script.
:: Please download them before running auto-concrete.
:: ========================================
::
:: Happy coding ...
@echo off
:: if filename is missing
if [%1] EQU [] goto usage_message
:: Set cmd window name
title Auto-Concrete v0.2
cd versions
if %errorlevel% NEQ 0 (
echo creating versions directory
mkdir versions
cd versions
)
cd ..
javac "%1"
:loop
:: Get OLD HASH of file
md5sum "%1" | gawk '{print $1}' > old
set /p oldHash=<old
copy "%1" "versions\%oldHash%.Java"
:inner_loop
:: Get NEW HASH of the same file
md5sum "%1" | gawk '{print $1}' > new
set /p newHash=<new
:: While OLD HASH and NEW HASH are the same
:: keep comparing OLD HASH and NEW HASH
if "%newHash%" EQU "%oldHash%" (
:: Take rest before proceeding
ping -w 200 0.0.0.0 >nul
goto inner_loop
)
:: Once they differ, compile the source file
:: and repeat everything again
echo.
echo ========= %1 changed on %DATE% at %TIME% ===========
echo.
javac "%1"
goto loop
:usage_message
echo Usage : auto-concrete FILENAME.Java
上記のバッチスクリプトは、ファイルの変更をチェックし、変更が行われた場合はコンパイルします。いつでもコンパイルできるように微調整できます。ハッピーコーディング:)
引数としてファイル名を取得し、コンパイルしてJavaファイルを1つのコマンドで実行するための単純なバッチスクリプトを作成しました。コードは次のとおりです。
@echo off
set arg1=%1
shift
javac -cp . %arg1%.Java
java %arg1%
pause
これをrun-Java.batとして保存し、System32ディレクトリに配置したので、どこからでもスクリプトを使用できます。
コマンドを使用するには、次のようにします。
run-Java filename
そして、ファイルをコンパイルして実行します。 ファイル名を入力するときに.Java拡張子を省略していることを確認してください(ファイル名を入力しても機能する可能性がありますが、バッチ処理は初めてで、その方法がわかりません。まだ)。
私が追加する他の唯一のものは、少し柔軟にすることです。ほとんどの場合、些細なJavaのように実行したいファイル-Main.Java、Simple.Java、Example.Java、またはPlayground.Javaを用意します(アイデアがわかります)。
以下を使用して、javacと対応するJavaを打ち消します。
@echo off
javac %~n1.Java
java %~n1
%〜n1は、バッチファイルに渡される最初の引数のファイル名(sans拡張子)を取得します。したがって、この方法では、タブ補完を使用して実行でき、.classまたは.Java拡張子のいずれかで動作することを心配する必要はありません。
したがって、次の両方の結果は同じになります。
run.bat Main.class
and
run.bat Main.Java
元のポスターの質問に100%答えるわけではありませんが、単純なjavac/Javaプログラムの次のステップ/進化としては良いと思います。
これを確認するためのJDKがマシンにインストールされていませんが、これはあなたが始めるための何かです
%CLASSPATH%=C:\Program Files\Java\jdk1.6\bin rem or whatever your path is
START %CLASSPATH%\javac Main.Java
START %CLASSPATH%\Java Main
@author MADMILK
@echo off
:getback1
set /p jump1=Do you want to compile? Write yes/no :
if %jump1% = yes
goto loop
if %jump1% = no
goto getback2
:: Important part here
:getback2
set /p jump2=Do you want to run a Java program? Write yes/no :
if %jump2% = yes
goto loop2
if %jump2% = no
goto getback1
:: Make a folder anywhere what you want to use for scripts, for example i make one.
cd desktop
:: This is the folder where is gonna be your script(s)
mkdir My Scripts
cd My Scripts
title Java runner/compiler
echo REMEMBER! LOWER CASES AND UPPER CASES ARE IMPORTANT!
:loop
echo This is the Java compiler program.
set /p jcVal=What Java program do you want to compile? :
javac %jcVal%
:loop2
echo This is the Java code runner program.
set /p javaVal=What Java program do you want to run? :
Java %javaVal%
pause >nul
echo Press NOTHING to leave