как изменить имя процесса JAVA-приложения?

Сейчас я играю с этим. Попробуйте PersistentCookieStore , добавьте зависимости gradle для JavaNetCookieJar :

compile "com.squareup.okhttp3:okhttp-urlconnection:3.0.0-RC1"

и init

    // init cookie manager
    CookieHandler cookieHandler = new CookieManager(
            new PersistentCookieStore(ctx), CookiePolicy.ACCEPT_ALL);
    // init okhttp 3 logger
    HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
    logging.setLevel(HttpLoggingInterceptor.Level.BODY);
    // init OkHttpClient
    OkHttpClient httpClient = new OkHttpClient.Builder()
            .cookieJar(new JavaNetCookieJar(cookieHandler))
            .addInterceptor(logging)
            .build();

`

40
задан Tiago Sippert 6 May 2013 в 14:53
поделиться

6 ответов

These methods are suited for servers with a lot of java processes running, and where you need a quick way of finding the correct jvm (not using jps.) For applications, I suppose launch4j or another wrapper is the way to go.

On unix, If you are launching from a shell sript (at least for bash and possibly for other decent shells) you can use:

exec -a goodname java ...

to launch java and pass "goodname" as the 0th argument, which will be shown as the process name in ps etc.

A perhaps better alternative (that seems to work also for top) is to create a symlink: ln -s /usr/bin/java /usr/local/bin/kallekula.

Shortcuts in windows won't do the trick, but windows vista/7 supports symlinks using mklink. That may work, but I haven't tested. I am not sure if exec -a also works with cygwin bash on Windows.

39
ответ дан 27 November 2019 в 01:29
поделиться

Обратите внимание на launch4j , это исполняемая оболочка, которая позволяет вам назначать исполняемые имена.

17
ответ дан 27 November 2019 в 01:29
поделиться

Если вы не запускаете Java через JNI в своем собственном созданном исполняемом файле, имя процесса всегда будет java.exe.

Есть несколько программ запуска / оболочки Java, которые могут сгенерировать этот исполняемый файл для вас .

  • Launch4j , похоже, самый последний и актуальный
  • JSmooth
  • install4J , коммерческий, больше, чем вам нужно
10
ответ дан 27 November 2019 в 01:29
поделиться

Если вы используете Sun JDK, вы также можете использовать инструмент командной строки jps, чтобы получить подробный список процессов Java, запущенных на компьютере.

5
ответ дан 27 November 2019 в 01:29
поделиться

Предполагая, что то, что вы действительно ищете, - это способ завершить правильный правильный процесс позже, тогда альтернативное решение:

Выполнить ps -ef | grep java , и вы должны получить список, который выглядит примерно так:

 mruser    7518  7505  4 11:37 pts/3    00:00:00 /usr/bin/java -classpath MRD3030_Linked.jar peralex.MyApp

Тогда pkill -f peralex.MyApp завершит правильный процесс.

3
ответ дан 27 November 2019 в 01:29
поделиться

Не все разновидности exec поддерживают флаг -a. В противном случае программа argv0 делает нечто подобное.

2
ответ дан 27 November 2019 в 01:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: