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

Комплексная проблема с java =(

Ну и как оно на сервере?
Та же 7ка, только без красивостей. А так возможностей побольше) Тот же IIS на семерке ограничивает число подключений, а сервер нет) А в целом тоже самое. Игры идут, дрова от семерки идут, все норм)
 
Ставить IIS на домашнем пк есть смысл только если ты разрабатываеш сайт, при разработке сайта нет необходимости в большом количестве подключений.
 
Нашел строчку, но не могу изменить, и как мне потом запаковать это все обратно?
 
Я вот допустим на 85% уверен что строки запуска там нет, просто запускается аплейт с параметрами.
Строки как таковой нет, но можно параметры модифицировать же!
Кусок из кода моего ланчера:
PHP:
package net.minecraft;
 
import java.util.ArrayList;
 
public class MinecraftLauncher
{
  //private static final int MIN_HEAP = 511;
  //private static final int RECOMMENDED_HEAP = 1024;
public static int memory;
  public static void main(String[] args)
    throws Exception
  {
    float heapSizeMegs = (float)(Runtime.getRuntime().maxMemory() / 1024L / 1024L);
 
    memory = Util.getMemorySelection();
    if (memory == 1)
        memory = 1024;
 
    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" + memory + "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");
        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);
      }
  }
}
 
Вот то, что у меня:
package net.minecraft;

import anjocaido.console.OutputConsole;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.URI;
import java.net.URL;
import java.security.CodeSource;
import java.security.ProtectionDomain;
import java.util.ArrayList;

public class MinecraftLauncher
{
private static final long MIN_HEAP = 511L;
private static final long RECOMMENDED_HEAP = 1024L;
private static boolean debugMode = false;

public static void main(String[] args) throws Exception
{
if ((args.length > 0) && (args[0].contains("debug"))) {
debugMode = true;
}

long heapSizeMegs = Runtime.getRuntime().maxMemory() / 1024L / 1024L;

if (heapSizeMegs > 511L) {
LauncherFrame.main(args);
} else {
ArrayList params = new ArrayList();

String pathToJar = MinecraftLauncher.class.getProtectionDomain().getCodeSource().getLocation().toURI().getPath();

params.add("javaw");
params.add("-Xms512m");
params.add("-Xmx1024m");
params.add("-Dsun.java2d.noddraw=true");
params.add("-Dsun.java2d.d3d=false");
params.add("-Dsun.java2d.opengl=false");
params.add("-Dsun.java2d.pmoffscreen=false");
params.add("-classpath");
params.add(pathToJar);
params.add("net.minecraft.LauncherFrame");
if (!debugMode)
try {
ProcessBuilder pb = new ProcessBuilder(params);
Process process = pb.start();
if (process == null) {
throw new Exception("!");
}

System.exit(0);
}
catch (IOException ec)
{
}
try {
params.set(0, "java");
ProcessBuilder pb = new ProcessBuilder(params);
Process process = pb.start();

if (process == null) {
throw new IOException("!");
}

if (debugMode) {
OutputConsole console = new OutputConsole();
BufferedReader reader1 = new BufferedReader(new InputStreamReader(process.getErrorStream()));
BufferedReader reader2 = new BufferedReader(new InputStreamReader(process.getInputStream()));
Thread errorViewer = new Thread(reader1, console, process)
{
BufferedReader reader = this.val$reader1;

public void run()
{
boolean terminated = false;
boolean noerrors = true;
String output = "";
this.val$console.acquire();
while ((!terminated) && (output != null)) {
int exitvalue = -2147483648;
try {
exitvalue = this.val$process.exitValue();
} catch (IllegalThreadStateException ex) {
try {
output = this.reader.readLine();
System.err.println(output);
this.val$console.appendText("\nError: " + output);
} catch (IOException ex1) {
output = null;
}
}
if (exitvalue != -2147483648) {
terminated = true;
if (exitvalue != 0) {
noerrors = false;
}
}
}
if (noerrors)
this.val$console.release();
}
};
Thread outViewer = new Thread(reader2, console, process)
{
BufferedReader reader = this.val$reader2;

public void run()
{
boolean terminated = false;
boolean noerrors = true;
String output = "";
this.val$console.acquire();
while ((!terminated) && (output != null)) {
int exitvalue = -2147483648;
try {
exitvalue = this.val$process.exitValue();
} catch (IllegalThreadStateException ex) {
try {
output = this.reader.readLine();
System.out.println(output);
this.val$console.appendText("\nOutput: " + output);
} catch (IOException ex1) {
output = null;
}
}
if (exitvalue != -2147483648) {
terminated = true;
if (exitvalue != 0) {
noerrors = false;
}
}
}
if (noerrors)
this.val$console.release();
}
};
errorViewer.start();
outViewer.start();
}

if (!debugMode)
System.exit(0);
}
catch (IOException e) {
System.out.println("Java couldn't figure out a way to get more memory.\nIf the game crashes, run to the hills!");

LauncherFrame.main(args);
}
}
}
}
Какой прогой изменить?
 
Ставить IIS на домашнем пк есть смысл только если ты разрабатываеш сайт, при разработке сайта нет необходимости в большом количестве подключений.
А так же если держишь сервер, сайты и т.п. :) Мои 70мбит это позволяют, зачем платить за хостинг?)
 
Строки как таковой нет, но можно параметры модифицировать же!
Кусок из кода моего ланчера:
PHP:
package net.minecraft;
 
import java.util.ArrayList;
 
public class MinecraftLauncher
{
  //private static final int MIN_HEAP = 511;
  //private static final int RECOMMENDED_HEAP = 1024;
public static int memory;
  public static void main(String[] args)
    throws Exception
  {
    float heapSizeMegs = (float)(Runtime.getRuntime().maxMemory() / 1024L / 1024L);
 
    memory = Util.getMemorySelection();
    if (memory == 1)
        memory = 1024;
 
    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" + memory + "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");
        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);
      }
  }
}
Почему если кучи меньше 512 то запускается не через аплейт лаунчера а из аплейта minecraft.jar?
 

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

Назад
Верх