exend 877 Опубликовано: 27 мая 2015 Если нужно, я могу предложить небольшой костыль для проверки наличия нужной версии java Спасибо. Проверку можно было бы сделать так: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/wait.h> #define L 4096 int main(void) { char bf[L]; int i; int de_java[2]; pid_t java; pipe(de_java); java = fork(); if(java == -1) { fputs("\033[1;31mНе удалось запустить дочерний процесс.\033[0m\n", stderr); exit(1); } else if(java == 0) { fputs("\033[1;33mЗапуск Java.\033[0m\n", stdout); close(de_java[0]); dup2(de_java[1], 1); i = execlp("java", "java", "-version", 0); } else close(de_java[1]); if(i == -1) { fputs("\033[1;31mУ Вас не установлена Java!\033[0m\n", stderr); close(de_java[0]); exit(1); } wait(0); read(de_java[0], bf, L); fputs("\033[1;33mСообщение:\033[0m\n", stdout); fputs(bf, stdout); close(de_java[0]); return 0; } Но жава выводит сообщение непонятно куда, уж точно не в stdout, или она для проверки версии запускает аж целый дочерний процесс, сообщение которого я уже не могу перехватить. А так это нормально работает для других программ, например clang. 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 27 мая 2015 (изменено) @eXend, есть такой велосипед. Создаешь файл, например, test.sh: java -version 2>&1 | head -n 1 | awk -F '"' '{print $2}' И просто запускаешь не процесс java, а i = execlp("sh","sh","./test.sh"); И оно выведет тебе в сообщение версию java или ничего, если java нету. Вроде как-то так. Знал бы я нормально плюсы, может быть что и по лучше предложил) И использование fputs вместо традиционного ввода/вывода - это сильно) Изменено 27 мая 2015 пользователем SirEdivn 1 Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
Гость BOOM96 Опубликовано: 27 мая 2015 Работает отлично ^-^ Поделиться сообщением Ссылка на сообщение
TheAndrey 16 141 Опубликовано: 27 мая 2015 @eXend, лучше сделай качалку под форточки, а то школьники не умеют Java обновлять... Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 27 мая 2015 @eXend, есть такой велосипед. Создаешь файл, например, test.sh: java -version 2>&1 | head -n 1 | awk -F '"' '{print $2}' И просто запускаешь не процесс java, а i = execlp("sh","sh","./test.sh"); И оно выведет тебе в сообщение версию java или ничего, если java нету. Вроде как-то так. Не... Файл не нужен. Можно сделать тогда еще проще: #include <stdio.h> #define L 4096 int main(void) { char bf[L]; FILE *de_java; de_java = popen("java -version 2>&1 | head -n 1 | awk -F '\"' '{print $2}'", "r"); if(de_java) { fgets(bf, L, de_java); fputs("\033[1;33mСообщение:\033[0m\n", stdout); fputs(bf, stdout); pclose(de_java); } return 0; } Но спасибо за команду, а то я в этих bash вообще не шарю (: Вот только, есть одна беда - openjdk, который выводит тоже самое, но при этом нихрена не работает. И использование fputs вместо традиционного ввода/вывода - это сильно) А что ты подразумеваешь под "традиционным" вводом/выводом? 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 27 мая 2015 (изменено) @eXend, картинку у меня опять не показывает( И странно, у меня с openjdk пашет (пока только седьмую тестанул) И в восьмой пашет. А пока кто-то упал, твой скрин я не увижу( А что ты подразумеваешь под "традиционным" вводом/выводом? всякие printf, cout) Изменено 27 мая 2015 пользователем SirEdivn Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 27 мая 2015 @eXend, лучше сделай качалку под форточки, а то школьники не умеют Java обновлять... Увы, но под кривые окошки есть только какая-то кривая реализация сокетов, которая отличается от стандартной UNIX. Еще скорее всего в окошках не установлены по умолчанию такие программы как OpenSSL и Tar, без которых невозможно реализовать работу "качалки". А еще качать и доустанавливать это ради того чтобы на окошках хоть что-то могло работать не стоит того... Окошки лесом идут крч. @eXend, картинку у меня опять не показывает( Какую именно? Кстати Joxi поломался ): И странно, у меня с openjdk пашет (пока только седьмую тестанул) А вот на всяких Fedora и openSUSE где он предустановлен не пашет. всякие printf, cout) cout нет в Си, а printf выводит только в stdout, а мне и в stderr тоже выводить нужно, поэтому я просто пишу функцию 1 раз и множу её. 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 27 мая 2015 Какую именно? Кстати Joxi поломался ): Ту самую, где ты показываешь, как не работает openjdk) Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 27 мая 2015 Ту самую, где ты показываешь, как не работает openjdk) Но она через вк же... Думал там будет работать, подскажи лучше куда залить, чтоб ссылка держалась кучу времени? 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 27 мая 2015 Но она через вк же... Думал там будет работать, подскажи лучше куда залить, чтоб ссылка держалась кучу времени? Фиг его знает .. можно попробовать что-то в стиле http://imgur.com/ Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 27 мая 2015 @SirEdivn, вот все картинки в порядке их следования: 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 27 мая 2015 (изменено) @eXend, муда очень умные люди из openjdk почему-то не поставляют ее с javafx, хотя она вроде как туда интегрирована ... Я могу предложить только модифицировать команду так: java -version 2>&1 | head -n 1 | awk '{print $3" " $1}' Она теперь будет выводить что-то в стиле: "1.8.0_40-internal" openjdk В клинических случаях и "1.8.0_45" java В нормальных. Но опять же, может снова полезут какие-то баги( Изменено 27 мая 2015 пользователем SirEdivn Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение
CandyFloss 88 Опубликовано: 27 мая 2015 Извините за возможно тупой вопрос. У меня одного на новом лаунчере Одиночка лагает? Я в замешательстве!!! 2 1 А давай съедим кусочек торта? Поделиться сообщением Ссылка на сообщение
exend 877 Опубликовано: 27 мая 2015 Я тут разобрался почему жава выводит инф. о версии непонятно куда. Оказывается эти гениальные люди выводят инф. о версии в stderr, номер которого 2. Крч, все что я могу, это сделать запрос о версии, и если там не окажется строки "java version \"1.8.", то загружать жаву отдельно, в ином случае запускать по стандартному пути. 30.10.2014 в 17:07, vadim189 сказал: виндовс переучтанавливаеш а толку нет всеравно 24.06.2014 в 14:43, SergeJ15 сказал: Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"? Поделиться сообщением Ссылка на сообщение
SirEdvin 2 037 Опубликовано: 27 мая 2015 Крч, все что я могу, это сделать запрос о версии, и если там не окажется строки "java version \"1.8.", то загружать жаву отдельно, в ином случае запускать по стандартному пути. Ну или как-то так) Приватные сборки рулят! Давайте вместе сделаем что-то интересное!, все тлен Поделиться сообщением Ссылка на сообщение