2016-05-11 20 views
1

これまでのところ、EclipseでJavaコードを実行するとかなりうまくいきます。しかし、私の次のプロジェクトでは、できるだけプログラムをループする必要があります。私は、これを行う最善の方法は、私はそれを書く方法の考えを持っていないループバッチファイルだろうと思う。バッチファイルで無限に引数を必要とするjarファイルをループする方法はありますか?

example.jarファイルがあります。これにはいくつかの異なるクラスが含まれていますが、変更することはできません。私ができるのは、cfm consoleコマンドでManifestを変更することだけです。

がEclipseでIは、exampleMain.classメインを設定することができ、Xは数値であることと、-t X SomeActuallyIrrelevantName package.className package.className2に引数を設定します。私は実際に何が-tは何を知りません。私は、コマンドライン(example.jar -jar のjava)を介してexample.jarを呼び出そうとするたびに

それはメインクラスがロードまたは見つからなかったことを言います。私は(example.exampleMainexample.exampleMain.classにexampleMain.classにexampleMainから)マニフェストにメインクラスを変更しようとしたが、助けていないようでした。

+0

これまでに試したスクリプトを投稿する必要があります。また、jarファイルの内部構造を投稿する必要があります。あなたのexample.jarは他のjarファイルに依存していますか?この単一のjarファイルからバッチファイル経由でいくつかのクラスを順番に呼びたいと思っていますか?上記のすべてを知ったら、私はあなたのための解決策を提供することができます。 – ManoDestra

+0

java -cp example.jar package.NameOfClassThatYouWantToRun –

+0

@ManoDestra:_example.jar_に_package.className_と_packageがあるボードゲームのフレームワークが含まれています。className2_は自分のプログラムしたプレイヤー、_X_は各ターンの時間制限です。 _exampleMain.class_を使用して初期化することによって各プレーヤーの値を変更したいのですが、_exampleMain.class_を無限に(または数千回)実行するように変更することはできませんので、バッチファイルでループします。 Therは他のjarファイルではなく、_example.jar_を除き、ゲームの視覚化と2人のプレーヤーの代替呼び出しのみが含まれています。 – TheChriggu

答えて

0

これはあなたがいない依存関係を持つ、単一のjarから実行したいクラスの既知のリストを与え、(Windowsの)バッチファイルを経由して、それを行うための一つの方法です...あなたのよう

@echo off 
:: You'll need to edit this list with your ACTUAL fully qualified class names 
:: from example.jar, or whatever your jar is called. 
set classesToRun=package1.Class1;package2.Class2;package3.example.game.Class3 

for %%c in (%classesToRun%) do (
    java -cp example.jar %%c 
) 

set classesToRun= 
@echo on 

jarファイルにmain-class属性を指定する必要はありません。メインのクラスポイントが1つしかない場合にのみ表示されます。定義しても、それを呼び出す必要はありません。デフォルトのメインクラスを呼び出す場合は-jarパラメータを使用しますが、にはを使用する必要はありません。あなたが任意の依存関係を持っている場合は

、あなたはあなたの具体的な例では;すなわち

java -cp example.jar;dependency1.jar;dependency2.jar %%c 

で区切られ、それはあなたが呼び出しているように聞こえる、上記example.jar行の後にそれらを追加する必要がありますあなた自身のクラスをパラメータとして渡すことができます。 ...私はあなたのゲームの枠組みの中で期待されているフォーマットを知らないが、それはこのようなもの(あなたが正しいフォーマットを私に助言することができると私はそれに応じて答えを改正ます)であってもよい

java -cp GameFramework.jar;YourClasses.jar game.framework.MainClass path.to.YourClass1 path.to.YourClass2 

ゲームフレームワークのJARとメインクラスに合わせて上記を更新し、独自のクラスをそのメインクラスのパラメータに置き換える必要があります。私は現在、ゲームフレームワークがあなたのクラスを個々の議論として取り上げていることを前提にしていますが、ゲームフレームワークの実際の引数フォーマットに合うようにアドバイスすることもできます。

関連する問題