Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

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
Очень расчитую на вашу помощь .....
 
Ява берет память по необходимости. Ну можно добавить params.add("-Xms" + memoryId + "m"); чтоб сразу выделить.
 
float heapSizeMegs = (float)(Runtime.getRuntime().maxMemory() / 1024l / 1024l);
это формула, рассчитывающая объем памяти, выделенный под игру. если он больше 512, то так лаунчер и запускается. если меньше, оно берет количество памяти из конфига и перезапускает себя, выделив столько. ты можешь поменять так, как тебе надо. можешь вообще всю эту логику переделать, например, всегда выделяя число памяти из конфига.
 
Ага ну примерно понял. Но скажите тогда . Что происходит с выпадающим списком выбора памяти и сервера когда я изменяю эту логику??. Значений не видно и ползунка тоже. Провел мышкой по ним и появились. Закрыл список исчезли и опять по новой.
!UP
! Up
 

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

Назад
Верх