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

Помогите Запуск клиента 1.7.10 чезез батник

Legan

Активный участник
Пользователь
Баллы
68
Имя в Minecraft
Legan
Подскажите пожалуйста команду запуска клиента 1.7.10 с Forge через bat файл. Старый способ вида:
javaw -Xmx1G -Djava.library.path=versions\1.6.4-Forge9.11.1.965\natives -cp libraries\net\minecraftforge\minecraftforge\9.11.1.965\minecraftforge-9.11.1.965.jar;libraries\net\minecraft\launchwrapper\1.8\launchwrapper-1.8.jar;libraries\org\ow2\asm\asm-all\4.1\asm-all-4.1.jar;libraries\org\scala-lang\scala-library\2.10.2\scala-library-2.10.2.jar;libraries\org\scala-lang\scala-compiler\2.10.2\scala-compiler-2.10.2.jar;libraries\lzma\lzma\0.0.1\lzma-0.0.1.jar;libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar;libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar;libraries\com\google\guava\guava\14.0\guava-14.0.jar;libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar;libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;versions\1.6.4-Forge9.11.1.965\1.6.4-Forge9.11.1.965.jar net.minecraft.launchwrapper.Launch --username legan --session 123456789 --version 1.6.4-Forge9.11.1.965 --gameDir "C:\Minecraft 1.6.4" --assetsDir assets --accessToken 0 --tweakClass cpw.mods.fml.common.launcher.FMLTweaker
не работает.

Как запустить клиент через bat файл, разобрался сам. Кому нужно, пишите в личку.
 
Последнее редактирование:
TrueBat
Java:
import java.awt.Dimension;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class Launch {
    List<URL> url = new ArrayList<URL>();
    URLClassLoader cl;
    String Class = null;
  public Launch() {
      initComponents();
  }
  private static JFrame frame;
  private TextField username;
  private void initComponents() {
      frame = new JFrame("Launcher");
      frame.setSize(156, 100);
      Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
      int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
      int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
      frame.setLocation(x, y);
      frame.setResizable(false);
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      username = new TextField();
      username.setLocation(17, 10);
      username.setSize(120, 25);
      JButton button = new JButton("Играть");
      button.setVisible(true);
      button.setLocation(17, 40);
      button.setSize(120, 25);
      frame.getContentPane().add(username);
      frame.getContentPane().add(button);
      frame.getContentPane().add(new JLabel());
      button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
                String nickname    = username.getText();
                Pattern p = Pattern.compile("^[a-zA-Z0-9_-]{2,16}$");
                Matcher m = p.matcher(nickname);
                List<String> params = new ArrayList<String>();
                boolean b = m.matches();
                if (nickname.isEmpty()) {
                    JOptionPane.showMessageDialog(frame, "Введите ник!", "", javax.swing.JOptionPane.WARNING_MESSAGE);
                    return;
                } else if (b==false) {
                    JOptionPane.showMessageDialog(frame, "Ник должен содержать только латинские буквы и цифры 2-16 символов!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                    return;
                } else {
                    File Dir = new File(".");
                    System.out.println("Путь до папки с клиентом -> "+Dir.getAbsolutePath());
                    if (!new File(Dir.getAbsolutePath()+"/natives").exists()) new File(Dir.getAbsolutePath()+"/natives").mkdirs(); //Папка с нативами
                    try {
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/versions"))); //Папка с клиентом
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/libraries"))); //Папка с либами
                    } catch (Exception x) {
                        JOptionPane.showMessageDialog(frame, "Неправильный путь к клиенту!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    cl = new URLClassLoader(url.toArray(new URL[url.size()]));
                    System.out.println("Список загруженных jar ->"+url);
                    System.setProperty("fml.ignoreInvalidMinecraftCertificates", "true");
                    System.setProperty("fml.ignorePatchDiscrepancies", "true");
                    System.setProperty("org.lwjgl.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("net.java.games.input.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("java.library.path", Dir.getAbsolutePath()+"/natives");
                    try {
                        cl.loadClass("com.mojang.authlib.Agent");
                        params.add("--accessToken");
                        params.add("1");
                        params.add("--uuid");
                        params.add("12345");
                        params.add("--userProperties");
                        params.add("{}");
                        params.add("--assetIndex");
                        params.add("1.7.4");
                    } catch (ClassNotFoundException x) {
                        params.add("--session");
                        params.add("1");
                    }
                    params.add("--username");
                    params.add(nickname);
                    params.add("--version");
                    params.add("1.7.4");
                    params.add("--gameDir");
                    params.add(Dir.getAbsolutePath()+"/");
                    params.add("--assetsDir");
                    params.add(Dir.getAbsolutePath()+"/assets");
                    }
                boolean tweakClass = false;
                try {
                    cl.loadClass("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                    params.add("--tweakClass");
                    params.add("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                    tweakClass = true;
                } catch (ClassNotFoundException x) {}
                try {
                    cl.loadClass("cpw.mods.fml.common.launcher.FMLTweaker");
                    params.add("--tweakClass");
                    params.add("cpw.mods.fml.common.launcher.FMLTweaker");
                    tweakClass = true;
                } catch (ClassNotFoundException x) {}
                if(tweakClass)
                {
                    Class = "net.minecraft.launchwrapper.Launch";
                } else {
                    Class = "net.minecraft.client.main.Main";
                }
                frame.setVisible(false);
                try
                {
                    Class<?> start = cl.loadClass(Class);
                    System.out.println("Запуск клиента");
                    Method main = start.getMethod("main", new Class[] { String[].class });
                    main.invoke(null, new Object[] { params.toArray(new String[0]) });
                } catch (Exception x)
                {
                    JOptionPane.showMessageDialog(frame, "Ошибка запуска!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                    System.exit(0);
                }
          }
      });
  }
  public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            System.out.println("Launcher Start");
            new Launch();
        }
      });
  }
  private static List<URL> getLibs(File libsfolder) throws MalformedURLException {
      List<URL> libs = new ArrayList<URL>();
      if (!libsfolder.exists()) libsfolder.mkdirs();
      for (File file : libsfolder.listFiles()) {
        if (file.isDirectory()) {
        libs.addAll(getLibs(file));
        } else {
          if (file.getName().endsWith(".jar")) {
                libs.add(file.toURI().toURL());
          }
        }
      }
      return libs;
    }
}
 
TrueBat
Java:
import java.awt.Dimension;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class Launch {
    List<URL> url = new ArrayList<URL>();
    URLClassLoader cl;
    String Class = null;
  public Launch() {
      initComponents();
  }
  private static JFrame frame;
  private TextField username;
  private void initComponents() {
      frame = new JFrame("Launcher");
      frame.setSize(156, 100);
      Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
      int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
      int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
      frame.setLocation(x, y);
      frame.setResizable(false);
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      username = new TextField();
      username.setLocation(17, 10);
      username.setSize(120, 25);
      JButton button = new JButton("Играть");
      button.setVisible(true);
      button.setLocation(17, 40);
      button.setSize(120, 25);
      frame.getContentPane().add(username);
      frame.getContentPane().add(button);
      frame.getContentPane().add(new JLabel());
      button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
                String nickname    = username.getText();
                Pattern p = Pattern.compile("^[a-zA-Z0-9_-]{2,16}$");
                Matcher m = p.matcher(nickname);
                List<String> params = new ArrayList<String>();
                boolean b = m.matches();
                if (nickname.isEmpty()) {
                    JOptionPane.showMessageDialog(frame, "Введите ник!", "", javax.swing.JOptionPane.WARNING_MESSAGE);
                    return;
                } else if (b==false) {
                    JOptionPane.showMessageDialog(frame, "Ник должен содержать только латинские буквы и цифры 2-16 символов!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                    return;
                } else {
                    File Dir = new File(".");
                    System.out.println("Путь до папки с клиентом -> "+Dir.getAbsolutePath());
                    if (!new File(Dir.getAbsolutePath()+"/natives").exists()) new File(Dir.getAbsolutePath()+"/natives").mkdirs(); //Папка с нативами
                    try {
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/versions"))); //Папка с клиентом
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/libraries"))); //Папка с либами
                    } catch (Exception x) {
                        JOptionPane.showMessageDialog(frame, "Неправильный путь к клиенту!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    cl = new URLClassLoader(url.toArray(new URL[url.size()]));
                    System.out.println("Список загруженных jar ->"+url);
                    System.setProperty("fml.ignoreInvalidMinecraftCertificates", "true");
                    System.setProperty("fml.ignorePatchDiscrepancies", "true");
                    System.setProperty("org.lwjgl.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("net.java.games.input.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("java.library.path", Dir.getAbsolutePath()+"/natives");
                    try {
                        cl.loadClass("
[QUOTE="alexandrage, post: 945059, member: 1987"]TrueBat
[code=java]import java.awt.Dimension;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class Launch {
    List<URL> url = new ArrayList<URL>();
    URLClassLoader cl;
    String Class = null;
  public Launch() {
      initComponents();
  }
  private static JFrame frame;
  private TextField username;
  private void initComponents() {
      frame = new JFrame("Launcher");
      frame.setSize(156, 100);
      Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
      int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
      int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
      frame.setLocation(x, y);
      frame.setResizable(false);
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      username = new TextField();
      username.setLocation(17, 10);
      username.setSize(120, 25);
      JButton button = new JButton("Играть");
      button.setVisible(true);
      button.setLocation(17, 40);
      button.setSize(120, 25);
      frame.getContentPane().add(username);
      frame.getContentPane().add(button);
      frame.getContentPane().add(new JLabel());
      button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
                String nickname    = username.getText();
                Pattern p = Pattern.compile("^[a-zA-Z0-9_-]{2,16}$");
                Matcher m = p.matcher(nickname);
                List<String> params = new ArrayList<String>();
                boolean b = m.matches();
                if (nickname.isEmpty()) {
                    JOptionPane.showMessageDialog(frame, "Введите ник!", "", javax.swing.JOptionPane.WARNING_MESSAGE);
                    return;
                } else if (b==false) {
                    JOptionPane.showMessageDialog(frame, "Ник должен содержать только латинские буквы и цифры 2-16 символов!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                    return;
                } else {
                    File Dir = new File(".");
                    System.out.println("Путь до папки с клиентом -> "+Dir.getAbsolutePath());
                    if (!new File(Dir.getAbsolutePath()+"/natives").exists()) new File(Dir.getAbsolutePath()+"/natives").mkdirs(); //Папка с нативами
                    try {
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/versions"))); //Папка с клиентом
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/libraries"))); //Папка с либами
                    } catch (Exception x) {
                        JOptionPane.showMessageDialog(frame, "Неправильный путь к клиенту!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    cl = new URLClassLoader(url.toArray(new URL[url.size()]));
                    System.out.println("Список загруженных jar ->"+url);
                    System.setProperty("fml.ignoreInvalidMinecraftCertificates", "true");
                    System.setProperty("fml.ignorePatchDiscrepancies", "true");
                    System.setProperty("org.lwjgl.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("net.java.games.input.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("java.library.path", Dir.getAbsolutePath()+"/natives");
                    try {
                        cl.loadClass("com.mojang.authlib.Agent");
                        params.add("--accessToken");
                        params.add("1");
                        params.add("--uuid");
                        params.add("12345");
                        params.add("--userProperties");
                        params.add("{}");
                        params.add("--assetIndex");
                        params.add("1.7.4");
                    } catch (ClassNotFoundException x) {
                        params.add("--session");
                        params.add("1");
                    }
                    params.add("--username");
                    params.add(nickname);
                    params.add("--version");
                    params.add("1.7.4");
                    params.add("--gameDir");
                    params.add(Dir.getAbsolutePath()+"/");
                    params.add("--assetsDir");
                    params.add(Dir.getAbsolutePath()+"/assets");
                    }
                boolean tweakClass = false;
                try {
                    cl.loadClass("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                    params.add("--tweakClass");
                    params.add("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                    tweakClass = true;
                } catch (ClassNotFoundException x) {}
                try {
                    cl.loadClass("cpw.mods.fml.common.launcher.FMLTweaker");
                    params.add("--tweakClass");
                    params.add("cpw.mods.fml.common.launcher.FMLTweaker");
                    tweakClass = true;
                } catch (ClassNotFoundException x) {}
                if(tweakClass)
                {
                    Class = "net.minecraft.launchwrapper.Launch";
                } else {
                    Class = "net.minecraft.client.main.Main";
                }
                frame.setVisible(false);
                try
                {
                    Class<?> start = cl.loadClass(Class);
                    System.out.println("Запуск клиента");
                    Method main = start.getMethod("main", new Class[] { String[].class });
                    main.invoke(null, new Object[] { params.toArray(new String[0]) });
                } catch (Exception x)
                {
                    JOptionPane.showMessageDialog(frame, "Ошибка запуска!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                    System.exit(0);
                }
          }
      });
  }
  public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            System.out.println("Launcher Start");
            new Launch();
        }
      });
  }
  private static List<URL> getLibs(File libsfolder) throws MalformedURLException {
      List<URL> libs = new ArrayList<URL>();
      if (!libsfolder.exists()) libsfolder.mkdirs();
      for (File file : libsfolder.listFiles()) {
        if (file.isDirectory()) {
        libs.addAll(getLibs(file));
        } else {
          if (file.getName().endsWith(".jar")) {
                libs.add(file.toURI().toURL());
          }
        }
      }
      return libs;
    }
}
1.7.2 запускает, а 1.7.10 - нет. Ошибка запуска.
 

Вложения:

  • Безымянный.jpg
    Безымянный.jpg
    Размер файла
    413,6 КБ
    Просмотров
    236
Вы ничего не путаете?
1) Как я без джавы буду запускать джава приложение?
2) Текущая последняя версия джавы - 7u60. 8 у меня в принципе быть не может.
Ну шибки запуска форджовских клиентов бывают только на 8 яве. Значит вы просто сунули не те либы.
 
Вы ничего не путаете?
1) Как я без джавы буду запускать джава приложение?
2) Текущая последняя версия джавы - 7u60. 8 у меня в принципе быть не может.
Последняя версия жабы - 8u5, бета версия - 8u20
Ну шибки запуска форджовских клиентов бывают только на 8 яве. Значит вы просто сунули не те либы.
Ошибка произошла у него ДО запуска клиента.
 
Последняя версия жабы - 8u5, бета версия - 8u20Ошибка произошла у него ДО запуска клиента.
Уж не знаю что он пихал в папочку либрариес, у меня все заводится под 7 явой.
И ошибку запуска может написать при любом ексепшене, ( не все ексепшены ).
 
Если ошибка возникает у меня одного, то опишите полностью последовательность действий, как запускали вы.
Как делал я:
  1. Скачал клиент 1.7.10 через официальный лаунчер.
  2. Поставил на него Forge 10.13.0.1160.
  3. Закинул в папку .minecraft откомпилированный лаунчер, код которого отправил alexandrage и запустил его.
  4. В корне появилась папка natives. В нее закинул содержимое versions\1.7.10-Forge10.13.0.1160\1.7.10-Forge10.13.0.1160-natives-3066112725408.
  5. Снова запускаю лаунчер - ошибка запуска.
Могу видео снять. Будет нагляднее понятно что я не так делаю. Версия джавы - 1.7.0_60 x64.
 
TrueBat
Java:
import java.awt.Dimension;
import java.awt.TextField;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
public class Launch {
    List<URL> url = new ArrayList<URL>();
    URLClassLoader cl;
    String Class = null;
  public Launch() {
      initComponents();
  }
  private static JFrame frame;
  private TextField username;
  private void initComponents() {
      frame = new JFrame("Launcher");
      frame.setSize(156, 100);
      Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
      int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
      int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
      frame.setLocation(x, y);
      frame.setResizable(false);
      frame.setVisible(true);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      username = new TextField();
      username.setLocation(17, 10);
      username.setSize(120, 25);
      JButton button = new JButton("Играть");
      button.setVisible(true);
      button.setLocation(17, 40);
      button.setSize(120, 25);
      frame.getContentPane().add(username);
      frame.getContentPane().add(button);
      frame.getContentPane().add(new JLabel());
      button.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
                String nickname    = username.getText();
                Pattern p = Pattern.compile("^[a-zA-Z0-9_-]{2,16}$");
                Matcher m = p.matcher(nickname);
                List<String> params = new ArrayList<String>();
                boolean b = m.matches();
                if (nickname.isEmpty()) {
                    JOptionPane.showMessageDialog(frame, "Введите ник!", "", javax.swing.JOptionPane.WARNING_MESSAGE);
                    return;
                } else if (b==false) {
                    JOptionPane.showMessageDialog(frame, "Ник должен содержать только латинские буквы и цифры 2-16 символов!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                    return;
                } else {
                    File Dir = new File(".");
                    System.out.println("Путь до папки с клиентом -> "+Dir.getAbsolutePath());
                    if (!new File(Dir.getAbsolutePath()+"/natives").exists()) new File(Dir.getAbsolutePath()+"/natives").mkdirs(); //Папка с нативами
                    try {
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/versions"))); //Папка с клиентом
                        url.addAll(getLibs(new File(Dir.getAbsolutePath()+"/libraries"))); //Папка с либами
                    } catch (Exception x) {
                        JOptionPane.showMessageDialog(frame, "Неправильный путь к клиенту!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                        return;
                    }
                    cl = new URLClassLoader(url.toArray(new URL[url.size()]));
                    System.out.println("Список загруженных jar ->"+url);
                    System.setProperty("fml.ignoreInvalidMinecraftCertificates", "true");
                    System.setProperty("fml.ignorePatchDiscrepancies", "true");
                    System.setProperty("org.lwjgl.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("net.java.games.input.librarypath", Dir.getAbsolutePath()+"/natives");
                    System.setProperty("java.library.path", Dir.getAbsolutePath()+"/natives");
                    try {
                        cl.loadClass("com.mojang.authlib.Agent");
                        params.add("--accessToken");
                        params.add("1");
                        params.add("--uuid");
                        params.add("12345");
                        params.add("--userProperties");
                        params.add("{}");
                        params.add("--assetIndex");
                        params.add("1.7.4");
                    } catch (ClassNotFoundException x) {
                        params.add("--session");
                        params.add("1");
                    }
                    params.add("--username");
                    params.add(nickname);
                    params.add("--version");
                    params.add("1.7.4");
                    params.add("--gameDir");
                    params.add(Dir.getAbsolutePath()+"/");
                    params.add("--assetsDir");
                    params.add(Dir.getAbsolutePath()+"/assets");
                    }
                boolean tweakClass = false;
                try {
                    cl.loadClass("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                    params.add("--tweakClass");
                    params.add("com.mumfrey.liteloader.launch.LiteLoaderTweaker");
                    tweakClass = true;
                } catch (ClassNotFoundException x) {}
                try {
                    cl.loadClass("cpw.mods.fml.common.launcher.FMLTweaker");
                    params.add("--tweakClass");
                    params.add("cpw.mods.fml.common.launcher.FMLTweaker");
                    tweakClass = true;
                } catch (ClassNotFoundException x) {}
                if(tweakClass)
                {
                    Class = "net.minecraft.launchwrapper.Launch";
                } else {
                    Class = "net.minecraft.client.main.Main";
                }
                frame.setVisible(false);
                try
                {
                    Class<?> start = cl.loadClass(Class);
                    System.out.println("Запуск клиента");
                    Method main = start.getMethod("main", new Class[] { String[].class });
                    main.invoke(null, new Object[] { params.toArray(new String[0]) });
                } catch (Exception x)
                {
                    JOptionPane.showMessageDialog(frame, "Ошибка запуска!", "", javax.swing.JOptionPane.ERROR_MESSAGE);
                    System.exit(0);
                }
          }
      });
  }
  public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            System.out.println("Launcher Start");
            new Launch();
        }
      });
  }
  private static List<URL> getLibs(File libsfolder) throws MalformedURLException {
      List<URL> libs = new ArrayList<URL>();
      if (!libsfolder.exists()) libsfolder.mkdirs();
      for (File file : libsfolder.listFiles()) {
        if (file.isDirectory()) {
        libs.addAll(getLibs(file));
        } else {
          if (file.getName().endsWith(".jar")) {
                libs.add(file.toURI().toURL());
          }
        }
      }
      return libs;
    }
}
в чем это компилировать?
 
путьдо/javac путьдо/Launch.java
в батнике сначала путь до javac и Launch.java?
где находится Launch.java?
не получается, можно полную версию батника с вашими путями?
путьдо/javac путьдо/Launch.java
ок, сделал
появилось 3 файла классов Launch.class, Launch$1.class и Launch$2.class
что дальше?
 
Последнее редактирование:
в батнике сначала путь до javac и Launch.java?
где находится Launch.java?
не получается, можно полную версию батника с вашими путями?

ок, сделал
появилось 3 файла классов Launch.class, Launch$1.class и Launch$2.class
что дальше?
java Launch.class
 
Error: Could not find or load main class Launch.class

это понятно что найти не может, не понятно почему, Launch.class лежит в папке .minecraft
запускаю батником: "C:\Program Files\Java\jre7\bin\java.exe" Launch.class

хорошо что на хабрахабре не так объясняют как тут..
вот правильная строка запуска "C:\Program Files\Java\jre7\bin\java.exe" -classpath . Launch
 
Последнее редактирование:
Error: Could not find or load main class Launch.class

это понятно что найти не может, не понятно почему, Launch.class лежит в папке .minecraft
запускаю батником: "C:\Program Files\Java\jre7\bin\java.exe" Launch.class

хорошо что на хабрахабре не так объясняют как тут..
вот правильная строка запуска "C:\Program Files\Java\jre7\bin\java.exe" -classpath . Launch
Да, действительно, ошибочка. Правильнее будет 'java Launch'.
 
1.7.10 кто-нибудь запустил через батник или предложенный лаунчер? Вопрос актуален.
 
Если ошибка возникает у меня одного, то опишите полностью последовательность действий, как запускали вы.
Как делал я:
  1. Скачал клиент 1.7.10 через официальный лаунчер.
  2. Поставил на него Forge 10.13.0.1160.
  3. Закинул в папку .minecraft откомпилированный лаунчер, код которого отправил alexandrage и запустил его.
  4. В корне появилась папка natives. В нее закинул содержимое versions\1.7.10-Forge10.13.0.1160\1.7.10-Forge10.13.0.1160-natives-3066112725408.
  5. Снова запускаю лаунчер - ошибка запуска.
Могу видео снять. Будет нагляднее понятно что я не так делаю. Версия джавы - 1.7.0_60 x64.
 

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

Назад
Верх