воскресенье, 26 июля 2015 г.

Minecraft без demo

Решил я на днях поиграть в minecraft на Linux. Зарегистрировался на сайте, установил пакет, когда launcher попросил - ввёл данные свои регистрационные, все как положено. Игра заработала - наслаждаюсь, вот думаю разработчики java молодцы, обещали что "написано один раз, работает везде" и выполнили таки обещание, несмотря на то, что игра выкуплена Microsoft - на Linux проблем нет. Но проходит пара часов - а она денег просит, прям как вирус какой поганый, про какое-то буржуйское "demo" талдычит. Я их тарабарскому наречию не обучен, чувствую только что java опять гадит, ибо других вирусов на Linux не водится.


Решил значит посмотреть, что же в системе делается, когда minecraft запущен:
$ ps aux | grep java
...
user      1607  143  3.8 3746864 476560 pts/1  Sl+  17:37   0:24 /usr/lib/jvm/java
-7-openjdk/jre/bin/java -Xmx1G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode
-XX:-UseAdaptiveSizePolicy -Xmn128M -Djava.library.path=
<...>
--userProperties {} --userType legacy --demo
А там строка запуска java - на цельный экран, аж в глазах рябит. Пригляделся я значит, глядь в конце эта самая "дема" прописана. Ну думаю - оно, наверняка без неё, все будет работать правильно. Написал скрипт (~/awesome_java):
#!/bin/sh

ARGS=()
for var in "$@"; do
    # Ignore known bad arguments
    [ "$var" != '--demo' ] && ARGS+=("$var")
done

/usr/lib/jvm/java-7-openjdk/jre/bin/java "${ARGS[@]}"
Он запускает ту же самую "/usr/lib/jvm/java-7-openjdk/jre/bin/java", только параметры плохие вырезает. Права на запуск ему дал. Запустил заново launcher от minecraft, полез в настройки профиля, попросил там запускать мою собственную java вместо той, что по умолчанию:
Запускаю, всё работает, никаких демов нет:
Вот так я помог бедному приложению от Microsoft нормально заработать, несмотря на происки другого приложения от Oracle.

P.S.: Все написанное выше представлено исключительно как обучающий пример работы с командной строкой в Linux. Игры безусловно нужно покупать даже несмотря на такую смешную "защиту".

Комментариев нет:

Отправить комментарий