Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Туториал Как узнать строку запуска любой версии Minecraft

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Reality_SC, 4 дек 2014.

Статус темы:
Закрыта.
  1. Автор темы
    Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Возможно, он подойдёт не всем.
    Просто я часто встречаю вопросы подобного рода и хочу поделиться своим подходом с теми, кому это пригодится.

    Поставим себе задачу: узнать строку запуска minecraft версии 1.8.1.

    Решаем поставленную задачу:
    • Скачиваем приложения:
    • Предположим, что у нас есть официальный клиент. Создаём/выбираем профиль с нужной версий и жмём Play.
      • upload_2014-12-4_11-53-23.png
      • Те, кто не имеют лицензионного аккаунты, жмут Play demo. От этого ничего существенного не меняется.
    • Игра запускается, появляется главное меню.
    • Запускаем Process Explorer, находим процесс с игрой (обычно это javaw.exe, дочерняя по отношению к другому javaw.exe). Также можно воспользоваться инструментом "Прицел". Кликаем дважды на строчку с процессом, в появившемся окне javaw.exe:### Properties открываем вкладку Image.
    • Выделяем от самого начала до самого конца строчку Command line. Начинается она обычно примерно так: ""C:\Program Files\Java\jre8\bin\javaw.exe"", кончается так: "--userType legacy" (но всё может быть иначе).
    • Открываем Programmer's Notepad и вставляем строчку в новый документ. У меня оказалась примерно 3700 знаков :) Для собственного же удобства я делаю следующие пункты:
    • Нажимаю CTRL+H (найти и заменить), заменить " " (один пробел!) на "\r\n\r\n", из галочек стоит только Regular expressions. Жму Replace all (заменить всё). Повторяю с новыми полями: заменить ";" (точка с запятой) на "\r\n", галочки не трогаю, Replace all. Аккуратно удаляю лишние переводы строк, чтобы было визуально красиво, получаю такой результат:
      • upload_2014-12-4_12-5-57.png
    • Часть этих полей, конечно же, может отсутствовать, а если Вы в demo режиме, то ещё и заметите связанный с этим параметр (его как правило тут же следует стереть и забыть).
    Что же, в результате мы получили вполне понятную строку запуска. Обычно это то, что Вы искали, чтобы использовать в своих лаунчерах или хз как ещё.

    Что с ней можно сделать ещё?
    Для своего сервера я обычно сливаю все библиотеки в одну. Давайте покажу, как я это делаю:
    • Копируем все строчки между -cp и названием главного класса (в моём случае это net.minecraft.client.main.Main).
    • Открываем Excel/аналог; вставляем из буфера в первую строку колонки B.
    • В первую строку первой колонки пишем "copy", и тянем за нижний правый квадратик, распространяя слово "copy" на все строки вниз.
    • Создадим на диске "C:" пустую папку "mctemp" (например). Пусть к ней будет "C:\mctemp\". Пишем его в третью колонку и распространяем на все строки. Получается что-то такое:
      • upload_2014-12-4_12-14-28.png
    • Копируем то, что я выделил, и вставляем в новый пустой документ Блокнота (или Programmer's Notepad, вообще куда угодно). Сохраняем файл как .bat (убедитесь, что Тип файла = все файлы, а не .txt, иначе получите бла_бла_бла.bat.txt). Куда сохранять — не важно.
    • Запускаем получившийся .bat. В папке C:\mctemp\ наблюдаем все нужные библиотеки рядом.
    Дальше я извлекаю все файлы WinRAR, удаляю лишнее, переархивирую их как мне нужно (в один единственный .jar).
    Замечу, что описанный мой метод, несмотря на большое описание, на самом деле довольно быстр в плане исполнения, и работает для модифицированных клиентов, например с LiteLoader и (не проверял) Forge. В таких случаях получится более расширенный набор библиотек и другой главный класс.
     
    Последнее редактирование: 4 дек 2014
  2. Хостинг MineCraft
    <
  3. deadanykey

    deadanykey Активный участник Пользователь

    Баллы:
    96
    log4j (и api и core) не сливайте в один .jar. Подключайте их отдельно, иначе он пишет упрощённый лог. Хотя на игру это не влияет.

    А для версий 1.6.x с интергированным LiteLoader нельзя сливать в один .jar либу bcprov-jdk15on-1.47.jar, иначе отваливается звук.
     
  4. deadanykey

    deadanykey Активный участник Пользователь

    Баллы:
    96
    Речь идёт о строке запуска, а не о том, чем и как запустить.
     
    Последнее редактирование: 24 дек 2014
  5. DimasForce

    DimasForce Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    DimasForce
    Даже чистый кубач полученной строкой запустить не выходит. Причем ошибок ноль. И кубача ноль. Забавно.
     
  6. deadanykey

    deadanykey Активный участник Пользователь

    Баллы:
    96
    Почему это? Надо только путь до AppData позаменить на %appdata%.
     
  7. DimasForce

    DimasForce Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    DimasForce
    Хм, запустилось. Кроме этого пути заменил еще start + путь к яве на java и поправил путь до natives. Спасибо.

    UPD: Я видимо неправильно перепаковал либы в один файл, подробнее про это можно?
    Я конечно могу просто украсть готовый (и отлично работающий) джарник вокселя, но ведь умения - бесценны :)
     
    Последнее редактирование: 10 янв 2015
  8. deadanykey

    deadanykey Активный участник Пользователь

    Баллы:
    96
    Исправьте на javaw.exe, а то консоль самой Java будет висеть.

    Что именно не получается? В одном окне WinRAR открываете JAR майнкрафта. В другом - JAR библиотек по очереди. И перетаскиваете всё из корня второго окна в корень первого. METAINF не надо.
    Промежуточные результаты хорошо бы проверять.
     
  9. DimasForce

    DimasForce Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    DimasForce
    Я распаковал всё, и запаковал в zip архив *.jar, но вместе с мета.[DOUBLEPOST=1420891632,1420891212][/DOUBLEPOST] Screenshot_1.png
    И с кавычками в пути, и без. Класс из строки запуска на месте, клиент - ванилька.
     
    Последнее редактирование: 10 янв 2015
  10. deadanykey

    deadanykey Активный участник Пользователь

    Баллы:
    96
    Предполагаю, что из-за отсутствия кавычек в одном из путей. У Вас путь с пробелами же. Заключите его в кавычки.

    Djava.library.path
     
  11. DimasForce

    DimasForce Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    DimasForce
    Точно. Блин, один путь забыл в кавычки загнать...
    UPD: И из шарпа запустился. Отлично! Пойду доделывать бэк.
     
Статус темы:
Закрыта.

Поделиться этой страницей