Вы могли просто использовать grep-v на выводе.
В зависимости от предупреждения Вы хотите отключить, можно иногда исправлять в коде. Например:
int main()
{
int i;
}
Генерирует: нечто cc:4: предупреждение: неиспользуемая переменная 'я'
принимая во внимание, что это не делает:
#define MARKUSED(X) ((void)(&(X)))
int main()
{
int i;
MARKUSED(i);
}
Я временно обошел ограничение аргумента командной строки в 4096 символов для ps (или, скорее, / proc / PID / cmdline), используя небольшой сценарий для замены команды java.
Во время разработки , Я всегда использую распакованную версию JDK от SUN и никогда не использую установленную JRE или JDK операционной системы, независимо от того, Linux или Windows (например, загрузите bin вместо rpm.bin). Я не рекомендую изменять сценарий для вашей установки Java по умолчанию (например, потому что он может нарушить обновления, перезаписать или создать проблемы или ...)
Итак, предполагая, что команда java находится в /x/jdks/jdk1.6.0_16_x32/ bin / java
сначала удалите фактический двоичный файл:
mv /x/jdks/jdk1.6.0_16_x32/bin/java /x/jdks/jdk1.6.0_16_x32/bin/java.orig
затем создайте сценарий /x/jdks/jdk1.6.0_16_x32/bin/java, например,
#!/bin/bash
echo "$@" > /tmp/java.$$.cmdline
/x/jdks/jdk1.6.0_16_x32/bin/java.orig $@
, а затем сделайте сценарий работающим
chmod a+x /x/jdks/jdk1.6.0_16_x32/bin/java
на случай Чтобы скопировать и вставить вышеупомянутое, вы должны убедиться, что в /x/jdks/jdk1.6.0_16_x32/bin/java нет лишних пробелов и #! / bin / bash - это первая строка
Полная командная строка заканчивается вверху, например, /tmp/java.26835.cmdline, где 26835 - это PID сценария оболочки. Я думаю, что есть также некоторое ограничение оболочки на количество аргументов командной строки, не могу вспомнить, но, возможно, это было 64 КБ символов.
вы можете изменить сценарий, чтобы удалить текст командной строки из /tmp/java.PROCESS_ID.cmdline в конце
После того, как я получил командную строку, я всегда перемещаю сценарий во что-то вроде "java.script" и копирую (cp -a) фактический двоичный файл java.orig обратно в java. Я использую сценарий только тогда, когда достигаю предела 4K.
Могут быть проблемы с экранированными символами и, возможно, даже с пробелами в путях и т.п., но у меня он работает нормально.
Вы можете использовать jconsole
, чтобы получить доступ к оригинальной командной строке без всех ограничений по длине.