ps -ef | grep java

解决方案 »

  1.   

    java程序自己做不到,要么命令行,要么JNI调本地API
      

  2.   

    请问楼上的:JNI如何调本地API?能不能提供一个建议。如果我们给myexample.jar一个固定的进程ID,不就可以实现了吗?现在关键是如何将一个固定分配的进程id和myexample.jar绑定在一起?
      

  3.   

    linux 好像不能分配固定进程给一个应用吧?
    JNI肯定可以,但很繁
    先要作一个调用类如
    public class MyNative
    {
      public int  Getproid( String s)
      {
        rertrn Getproid0 (s );
      }  private native int Getproid0( String s);  static
      {
        System.loadLibrary( "MyNative" );
      }
    }
    然后用
     javac MyNative.java
     javah -jni  MyNative 生成MyNative.h文件
    然后用linux下的gcc实现Getproid0 (要参考linux gcc开发)并生成动态库(类似windwows下的dll)
    最后将MyNative类加入你的java项目中就可以了
      

  4.   

    另外:gcc必须用以下命令编译
    gcc -shared -I/usr/java/j2sdk1.4.2_09/include  -I/usr/java/j2dk1.4.2_09/include/linux  -o libMyNative.so MNative.c  
    并设置环境变量
    export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH
    得到进程ID的linux源码可参考我的
    http://community.csdn.net/Expert/topic/3255/3255684.xml?temp=.9827082
    JNI的调用方法可参考
    http://www-128.ibm.com/developerworks/cn/java/jnimthds/index.html
    那个是for windows的,linux下C的方法类同,只是用我上面的编译方式即可(例子程序我有linux9+j2sdk1.4.2_09通过)