2012-01-23 20 views
0

私は、Hibernateも使用する大きなStruts1 Webプロジェクトを持っています。既存のJavaプロジェクトからメインクラスを抽出するにはどうすればよいですか?

私たちのパッケージの一つは次のとおりです。

com.company.examples.users

もう一つは、次のとおりです。

com.company.examples.orders

これらのパッケージのそれぞれには、テストに使用されるmain.javaファイル(実際にはNetbeans内からファイルを実行しています)があります。

メインファイルを右クリックして実行するように指示すると、出力がログウィンドウに表示されます。それは結構です。しかし、私は実際のJARファイルにそれらを抽出して個別に実行できるようにしたいと考えています。

これらのファイルは、大きなプロジェクト全体にも依存しています。たくさんのパッケージなど

どうすればいいですか?

+0

あなたは瓶を作成する方法を尋ねていますか? jarコマンドの使用はどうですか? –

+0

さて、私はJava(C#/ Ruby開発者)の新人です。 Webサーバーに展開する大量のWARファイルを作成できますが、その一部(main.javaクラス)を個別のJARファイルに抽出する必要があります。ありがとう – cbmeeks

+0

あなたが言ったように、main.javaクラスは、他のクラスをテストするために使用されます。だから彼らはおそらく他のすべてのクラスに依存しています。したがって、すべてのクラスを含む単一のjarファイルを作成する必要があります。あなたの組織にJavaの仕組みを知っている人はいませんか? warファイルを生成するには、いくつかのビルドプロセスが必要であり、このビルドプロセスを更新してjarファイルを生成する必要があります。 –

答えて

1

ここでは、すばやく汚い道です。フォルダを作成し、cdを入れます。

>md test 
>cd test 

は、そのフォルダにWARファイル、prepare-tests.batmake-classpath.batファイルをコピーします。 prepare-tests.batがある

md unpacked 
cd unpacked 
jar xvf ..\%1 
cd WEB-INF\classes 
jar cvf ..\..\..\classes.jar * 
cd ..\..\.. 
call make-classpath 

そしてmake-classpath.batは次のとおりです。

@echo off 
<nul set /p =set CLASSPATH=.;> set-classpath.bat 
<nul set /p =classes.jar;>> set-classpath.bat 
for /f %%a IN ('dir unpacked\WEB-INF\lib *.jar /s/b') do <nul set /p =%%a;>> set-classpath.bat 

基本的には、これらのステップは、WARを解凍WARのクラスをjarファイル(もしあれば)、その点のクラスパスを作成します。あなたのWEB-INF/libフォルダにあるこれらのクラスとすべてのJARに追加します。

あなたはそれまでに(あなたが作成したtestフォルダ内から)テストを実行することができます

>prepare-tests my-war.war 
>set-classpath 
>java com.foo.bar.MyTest 

あなたは/自動かかわらず、あなたのテストを容易にするために、MavenとJUnitのようなツールを使用してオフにはるかに良いと思います。

+0

これは実際に働いた。しかし、私は先に進み、スタンドアロンのJavaアプリケーションを作成し、私が必要なものを移動しました。これは、このようなものをより整理する必要があることを示す良い思い出です。 :-)ありがとう\ – cbmeeks

+0

クール。うん、1つの仕事をしてうまくやる小さなコンポーネントを作ってみるのが一番です。その後、アプリケーションサーバーを必要とすることなく、それらを単独でテストすることができます。いくつかのテストでは、実行するWebコンテナが必要になることはもちろんですが、最終的にはそれらの数を減らすことになります。 –

関連する問題