web-dev-qa-db-ja.com

単純なjavacおよびJavaコマンド実行のためのバッチファイルの作成

とても簡単なことですが、頭がよくありません。 StackOverFlowの投稿やインターネットをたくさん見てきました。

私の目標は、cmdを開き、Main.Javaをコマンドプロンプトで実行する.batを作成することです。簡単なことではありませんが、私はどのように混乱しましたか?

以下では、バッチファイルが実行する必要のある手順を記述しています。

  1. コマンドを開く
  2. javac Main.Java
  3. Javaメイン

私のファイルはすべての.Javaの隣にあるので、明示的なパスを指定する必要がないと想定しています。

これまでの研究による私の理解:

  1. テキストエディターを開く
  2. cmdを開くコードを記述します(方法はわかりません)
  3. echo javac Main.Java(まだ私にはあいまいな概念です)
  4. echo Javaメイン

名前を付けて保存:name.bat

どんな助けでもありがたいです。ありがとうございました。

8
TeaCupApp
  1. メモ帳を開く

  2. 書く

    @echo off
    
    javac Main.Java
    
    Java Main
    

3.saveAs blahblah.bat

main.Javaがバッチファイルと共に存在し、Javaパスが環境変数に設定されていることを確認してください

4。バッチファイルをダブルクリックします。cmdを明示的に開く必要はありません。ttは.batの実行時に自身を開きます。

17

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
5
David
  1. メモ帳を開く

  2. 次のように入力します。

    javac *
    Java Main
    
  3. SaveAs Main.batまたはバッチファイルに使用する任意の名前

Main.Javaがバッチファイルと同じフォルダにあることを確認してください

バッチファイルをダブルクリックして、Main.Javaファイルを実行します。

1
WoLv3rine

私はあなたの質問だけを理解していますか? Javaクラスファイルをコンパイルして実行するには、.batファイルが必要ですか?

.batファイルの場合。ダブルクリックするだけです。

.batファイルでは、javac Main.Java((バットにur Main.Javaへのパスが含まれていることを確認してください)が必要です)Java Main

コンパイルの警告/ステートメントをエコーし​​たい場合は、別のものが必要になります。しかし、あなたはそれを自動化したいので、多分あなたは最終的にそれを必要としません。

1
Gary Tsui

プレーンテキストファイルを(メモ帳を使用して)作成し、Javaファイルの実行に使用する正確な行をコマンドプロンプトで入力します。次に、拡張子を.batに変更すれば完了です。

このファイルをダブルクリックすると、Javaプログラムが実行されます。

JavacとJavaに1つずつファイルをお勧めします。これにより、何か問題がある場合のトラブルシューティングを行うことができます。

  • Javaもパスに含まれていることを確認してください。IEワークスペースが表示されたら、Java DosウィンドウでJavaと入力してください。 Javaバージョンのメッセージ。 Javaがパスにない場合、Javaバイナリへの絶対パスを使用しない限り、バッチファイルは機能しません。
1
stefgosselin

私も同様の状況に直面しており、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

上記のバッチスクリプトは、ファイルの変更をチェックし、変更が行われた場合はコンパイルします。いつでもコンパイルできるように微調整できます。ハッピーコーディング:)

0
Rudhin

引数としてファイル名を取得し、コンパイルしてJavaファイルを1つのコマンドで実行するための単純なバッチスクリプトを作成しました。コードは次のとおりです。

@echo off
set arg1=%1
shift
javac -cp . %arg1%.Java
java %arg1%
pause

これをrun-Java.batとして保存し、System32ディレクトリに配置したので、どこからでもスクリプトを使用できます。

コマンドを使用するには、次のようにします。

run-Java filename

そして、ファイルをコンパイルして実行します。 ファイル名を入力するときに.Java拡張子を省略していることを確認してください(ファイル名を入力しても機能する可能性がありますが、バッチ処理は初めてで、その方法がわかりません。まだ)。

0
wes1099

私が追加する他の唯一のものは、少し柔軟にすることです。ほとんどの場合、些細な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プログラムの次のステップ/進化としては良いと思います。

0
Chad Gorshing

これを確認するためのJDKがマシンにインストールされていませんが、これはあなたが始めるための何かです

%CLASSPATH%=C:\Program Files\Java\jdk1.6\bin rem or whatever your path is
START %CLASSPATH%\javac Main.Java
START %CLASSPATH%\Java Main
0
abhilash
@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
0
MADMILK