渡辺です。
原因のアタリがついてので自己レスです。
Maven2プラグインでは実行に
org.codehaus.mojo:exec-maven-plugin:1.1.1:exec
というプラグインのgoalを指定しており、
このプラグインから外部プロセスとしてjava.exeを起動しているようです。
-Dexec.executable=java
この時に色々とパラメータを渡しているようです。
-Dexec.args=-Xms16m -Xmx64m -classpath %classpath
jp.deathmarch.s4.server.StreamingServer
mvnコマンドを使ってコマンドラインから実行した場合でも同じようにプロセスは残りました。
問題はプラグインがmvnを使って実行をかけている点かと思います。
通常通りに実行できないかと調べてみたのですが、
プロジェクトのプロパティのアクションで「外部Mavenを構築実行の為に使用」とあり
これをはずせばいいのかな?と思いました。
が、このチェックボックスはけしてもまたついてしまい、無効に出来ません。
後は、org.codehaus.mojo:exec-maven-plugin:1.1.1:javaを使って
同一のVMで動かすなどの手段がとれそうかな、といった所です。
どちらにせよ、毎回Mavenが動くのはちょっと厳しいです。
Maven2プロジェクトとして作り、通常のJavaプロジェクトとしても使いたいというのは無理な話なんですかね?
2009/06/09 23:39 に Shuji Watanabe<
shuji.w6e@...> さんは書きました:
> 渡辺です。
> Maven2プロジェクトの実行時にバグなのか判断つかない現象に遭遇しました。
>
> 再現方法(NB6.7RC2 Java SEパック)
> 1. Maven2プロジェクトを作成
> 2. メインスレッド以外を作成して、ループなどをかける(サンプルソース参照)
> 3. 実行する
> 4. 停止・・・・できないorz
>
> どうも、Maven2のexecute goal が実行されているらしく、NetBeansから停止できなくなります。
> 外部プロセスなのかNetBeansを落としてもjava.exeのプロセスは残っているので
> タスクマネージャから殺さないと死にません。
> ServerSocketを使ったアプリを作っていて気づきました。
>
> Maven2プロジェクトの実行時にexec goalを起動しないようにできますか?
> もしくは何か情報があれば教えてください。
>
> 問題が起きるサンプル
> ----
> public class App {
>
> public static void main(String[] args) {
> Executors.newSingleThreadExecutor().submit(new Runnable() {
>
> public void run() {
> while (true) {
> try {
> System.out.println("!");
> Thread.sleep(1000);
> } catch (InterruptedException ex) {
> ex.printStackTrace();
> }
> }
> }
> });
> }
> }
> ----
> --
> ================================
> Shuji Watanabe (skypeId: shuji.w6e)
> Blog:
>
http://d.hatena.ne.jp/shuji_w6e/> Labo:
>
http://www.deathmarch.jp/> Community:
>
http://www.sapporo-java.org/>
--
================================
Shuji Watanabe (skypeId: shuji.w6e)
Blog:
http://d.hatena.ne.jp/shuji_w6e/ Labo:
http://www.deathmarch.jp/ Community:
http://www.sapporo-java.org/---------------------------------------------------------------------
To unsubscribe, e-mail:
nbdiscuss_ja-unsubscribe@...
For additional commands, e-mail:
nbdiscuss_ja-help@...