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

Помогите Выделение памяти Лаунчер

Тема в разделе "[Архив] Помощь", создана пользователем qestsmile, 6 окт 2013.

  1. Автор темы
    qestsmile

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

    Баллы:
    63
    Подскажите лаунчер Империя от xeroXP
    Лаунчер не хочет выделять память майну. Меняешь в настройках на 2048 а он все равно ставить свои 899
    Единственное что дает результат это :
    Код:
    loat heapSizeMegs = (float)(Runtime.getRuntime().maxMemory() / 1024l / 1024l);
    замена к примеру на
    loat heapSizeMegs = (float)(Runtime.getRuntime().maxMemory() / 1024l / 8000l);
    но после этого все фремы в лаучеры скрыты и чтоб они появились нужно провести мышкой по ним.
    Вот полное содржание главного класса :
    Код:
    package net.minecraft;
     
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Properties;
     
    public class MinecraftLauncher
    {
    public static String memoryId;
     
      public static void main(String[] args)
     
        throws Exception
      {
        float heapSizeMegs = (float)(Runtime.getRuntime().maxMemory() / 1024l / 1024l);
       
        try {
            Properties defaultProps = new Properties();
            FileInputStream in;
            in = new FileInputStream(Util.getWorkingDirectory() + "/launcher.properties");
            defaultProps.load(in);
     
            memoryId = defaultProps.getProperty("memory");
                           
            in.close();
            }catch (IOException e1){
            }
     
        if (heapSizeMegs > 511.0F)
          LauncherFrame.main(args);
        else
          try {
             
              String pathToJar = MinecraftLauncher.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();
     
            ArrayList<String> params = new ArrayList<String>();
     
            if (Util.getPlatform() == Util.OS.windows) {
                params.add("javaw");
            } else {
                params.add("java");
            }
            params.add("-Xmx" + memoryId + "m");
            params.add("-Dsun.java2d.noddraw=true");
            params.add("-Dsun.java2d.d3d=false");
            params.add("-Dsun.java2d.opengl=false");
            params.add("-Dsun.java2d.pmoffscreen=false");
            if (System.getProperty("net.minecraft.server") != null)
                    params.add("-Dnet.minecraft.server="
                            + System.getProperty("net.minecraft.server"));
            params.add("-classpath");
            params.add(pathToJar);
            params.add("net.minecraft.LauncherFrame");
     
            ProcessBuilder pb = new ProcessBuilder(params);
            Process process = pb.start();
            if (process == null) throw new Exception("!");
            System.exit(0);
          } catch (Exception e) {
            e.printStackTrace();
            LauncherFrame.main(args);
    Главный класс : net.minecraft.MinecraftLauncher
    стоит 64 ява и сдк тоже 64
    Очень расчитую на вашу помощь .....
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    qestsmile

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

    Баллы:
    63
  4. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Ява берет память по необходимости. Ну можно добавить params.add("-Xms" + memoryId + "m"); чтоб сразу выделить.
     
  5. Code

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

    Баллы:
    123
    Имя в Minecraft:
    _Gizmo
    float heapSizeMegs = (float)(Runtime.getRuntime().maxMemory() / 1024l / 1024l);
    это формула, рассчитывающая объем памяти, выделенный под игру. если он больше 512, то так лаунчер и запускается. если меньше, оно берет количество памяти из конфига и перезапускает себя, выделив столько. ты можешь поменять так, как тебе надо. можешь вообще всю эту логику переделать, например, всегда выделяя число памяти из конфига.
     
  6. Автор темы
    qestsmile

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

    Баллы:
    63
    Ага ну примерно понял. Но скажите тогда . Что происходит с выпадающим списком выбора памяти и сервера когда я изменяю эту логику??. Значений не видно и ползунка тоже. Провел мышкой по ним и появились. Закрыл список исчезли и опять по новой.[DOUBLEPOST=1381139081,1381118669][/DOUBLEPOST]!UP[DOUBLEPOST=1381158722][/DOUBLEPOST]! Up
     

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