Форум программистов, компьютерный форум, киберфорум
Наши страницы

Java SE (J2SE)

Войти
Регистрация
Восстановить пароль
 
PlatonCraft
3 / 3 / 1
Регистрация: 18.02.2013
Сообщений: 63
#1

Компиляция кода без некоторых файлов - Java SE

03.06.2013, 18:12. Просмотров 667. Ответов 8
Метки нет (Все метки)

Добрый день! Собрался русифицировать пару модов в игре Майнкрафт. Файла локализации нет. Нашел программу декомпиляции .class файлов, подсмотрел нужный мне код, заменил английские названия в кавычках на русские названия. Осталось только обратно перекомпилировать, но как - без понятия
код .java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package cpw.mods.compactsolars;
 
import com.google.common.base.Throwables;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.common.registry.LanguageRegistry;
import ic2.api.item.Items;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraftforge.common.Configuration;
import net.minecraftforge.common.Property;
 
public enum CompactSolarType
{
  LV(8, "Солнечная батарея низкого напряжения", "lvTransformer", TileEntityCompactSolar.class, "lvHat"), 
  MV(64, "Солнечная батарея среднего напряжения", "mvTransformer", TileEntityCompactSolarMV.class, "mvHat"), 
  HV(512, "Солнечная батарея высокого напряжения", "hvTransformer", TileEntityCompactSolarHV.class, "hvHat");
 
  private int output;
  public Class clazz;
  public String friendlyName;
  public String transformerName;
  public final String hatTexture;
  private String hatName;
  private ItemSolarHat item;
  public final String hatItemTexture;
 
  private CompactSolarType(int output, String friendlyName, String transformerName, Class clazz, String hatTexture) { this.output = output;
    this.friendlyName = friendlyName;
    this.transformerName = transformerName;
    this.clazz = clazz;
    this.hatName = ("solarHat" + name());
    this.hatTexture = ("/mods/compactsolars/textures/armor/" + hatTexture + ".png");
    this.hatItemTexture = ("compactsolars:" + hatTexture); }
 
  public static void generateRecipes(BlockCompactSolar block)
  {
    ItemStack solar = Items.getItem("solarPanel");
    ItemStack parent = solar;
    for (CompactSolarType typ : values()) {
      ItemStack targ = new ItemStack(block, 1, typ.ordinal());
      ItemStack transformer = Items.getItem(typ.transformerName);
      addRecipe(targ, new Object[] { "SSS", "SXS", "SSS", Character.valueOf('S'), parent, Character.valueOf('X'), transformer });
      parent = targ;
    }
  }
 
  private static void addRecipe(ItemStack target, Object[] args) {
    GameRegistry.addRecipe(target, args);
  }
  public int getOutput() {
    return this.output;
  }
 
  public static TileEntityCompactSolar makeEntity(int metadata) {
    int solartype = metadata;
    try {
      return (TileEntityCompactSolar)values()[solartype].clazz.newInstance();
    }
    catch (Exception e) {
      throw Throwables.propagate(e);
    }
  }
 
  public int getTextureRow() {
    return ordinal();
  }
 
  public String tileEntityName() {
    return "CompactSolarType." + name();
  }
 
  public ItemSolarHat buildHat(Configuration cfg, int id)
  {
    int itemId = cfg.getItem(this.hatName, id).getInt(id);
    this.item = new ItemSolarHat(itemId, this);
    this.item.func_77655_b(this.hatName);
    GameRegistry.registerItem(this.item, this.hatName);
    LanguageRegistry.instance().addStringLocalization("item." + this.hatName + ".name", name() + "СП-шлем");
    return this.item;
  }
 
  public static void buildHats(Configuration cfg, int defaultId)
  {
    for (CompactSolarType typ : values())
    {
      typ.buildHat(cfg, defaultId++);
    }
  }
 
  public static void generateHatRecipes(BlockCompactSolar block)
  {
    Item ironHat = Item.field_77812_ad;
    for (CompactSolarType typ : values())
    {
      ItemStack solarBlock = new ItemStack(block, 0, typ.ordinal());
      GameRegistry.addShapelessRecipe(new ItemStack(typ.item), new Object[] { solarBlock, ironHat });
    }
  }
}




Когда компилирую выдает такой список ошибок:
Кликните здесь для просмотра всего текста
Код
C:\Users\Администратор\Desktop>javac -cp . CompactSolarType.java
CompactSolarType.java:3: error: package com.google.common.base does not exist
import com.google.common.base.Throwables;
                             ^
CompactSolarType.java:4: error: package cpw.mods.fml.common.registry does not ex
ist
import cpw.mods.fml.common.registry.GameRegistry;
                                   ^
CompactSolarType.java:5: error: package cpw.mods.fml.common.registry does not ex
ist
import cpw.mods.fml.common.registry.LanguageRegistry;
                                   ^
CompactSolarType.java:6: error: package ic2.api.item does not exist
import ic2.api.item.Items;
                   ^
CompactSolarType.java:7: error: package net.minecraft.item does not exist
import net.minecraft.item.Item;
                         ^
CompactSolarType.java:8: error: package net.minecraft.item does not exist
import net.minecraft.item.ItemStack;
                         ^
CompactSolarType.java:9: error: package net.minecraftforge.common does not exist

import net.minecraftforge.common.Configuration;
                                ^
CompactSolarType.java:10: error: package net.minecraftforge.common does not exis
t
import net.minecraftforge.common.Property;
                                ^
CompactSolarType.java:24: error: cannot find symbol
  private ItemSolarHat item;
          ^
  symbol:   class ItemSolarHat
  location: class CompactSolarType
CompactSolarType.java:35: error: cannot find symbol
  public static void generateRecipes(BlockCompactSolar block)
                                     ^
  symbol:   class BlockCompactSolar
  location: class CompactSolarType
CompactSolarType.java:47: error: cannot find symbol
  private static void addRecipe(ItemStack target, Object[] args) {
                                ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:54: error: cannot find symbol
  public static TileEntityCompactSolar makeEntity(int metadata) {
                ^
  symbol:   class TileEntityCompactSolar
  location: class CompactSolarType
CompactSolarType.java:72: error: cannot find symbol
  public ItemSolarHat buildHat(Configuration cfg, int id)
                               ^
  symbol:   class Configuration
  location: class CompactSolarType
CompactSolarType.java:72: error: cannot find symbol
  public ItemSolarHat buildHat(Configuration cfg, int id)
         ^
  symbol:   class ItemSolarHat
  location: class CompactSolarType
CompactSolarType.java:82: error: cannot find symbol
  public static void buildHats(Configuration cfg, int defaultId)
                               ^
  symbol:   class Configuration
  location: class CompactSolarType
CompactSolarType.java:90: error: cannot find symbol
  public static void generateHatRecipes(BlockCompactSolar block)
                                        ^
  symbol:   class BlockCompactSolar
  location: class CompactSolarType
CompactSolarType.java:14: error: cannot find symbol
  LV(8, "╤юыэхўэр* срЄрЁх* эшчъюую эряЁ*цхэш*", "lvTransformer", TileEntityCompa
ctSolar.class, "lvHat"),
                                                                 ^
  symbol:   class TileEntityCompactSolar
  location: class CompactSolarType
CompactSolarType.java:15: error: cannot find symbol
  MV(64, "╤юыэхўэр* срЄрЁх* ёЁхфэхую эряЁ*цхэш*", "mvTransformer", TileEntityCom
pactSolarMV.class, "mvHat"),
                                                                   ^
  symbol:   class TileEntityCompactSolarMV
  location: class CompactSolarType
CompactSolarType.java:16: error: cannot find symbol
  HV(512, "╤юыэхўэр* срЄрЁх* т√ёюъюую эряЁ*цхэш*", "hvTransformer", TileEntityCo
mpactSolarHV.class, "hvHat");
                                                                    ^
  symbol:   class TileEntityCompactSolarHV
  location: class CompactSolarType
CompactSolarType.java:37: error: cannot find symbol
    ItemStack solar = Items.getItem("solarPanel");
    ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:37: error: cannot find symbol
    ItemStack solar = Items.getItem("solarPanel");
                      ^
  symbol:   variable Items
  location: class CompactSolarType
CompactSolarType.java:38: error: cannot find symbol
    ItemStack parent = solar;
    ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:40: error: cannot find symbol
      ItemStack targ = new ItemStack(block, 1, typ.ordinal());
      ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:40: error: cannot find symbol
      ItemStack targ = new ItemStack(block, 1, typ.ordinal());
                           ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:41: error: cannot find symbol
      ItemStack transformer = Items.getItem(typ.transformerName);
      ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:41: error: cannot find symbol
      ItemStack transformer = Items.getItem(typ.transformerName);
                              ^
  symbol:   variable Items
  location: class CompactSolarType
CompactSolarType.java:48: error: cannot find symbol
    GameRegistry.addRecipe(target, args);
    ^
  symbol:   variable GameRegistry
  location: class CompactSolarType
CompactSolarType.java:57: error: cannot find symbol
      return (TileEntityCompactSolar)values()[solartype].clazz.newInstance();
              ^
  symbol:   class TileEntityCompactSolar
  location: class CompactSolarType
CompactSolarType.java:60: error: cannot find symbol
      throw Throwables.propagate(e);
            ^
  symbol:   variable Throwables
  location: class CompactSolarType
CompactSolarType.java:75: error: cannot find symbol
    this.item = new ItemSolarHat(itemId, this);
                    ^
  symbol:   class ItemSolarHat
  location: class CompactSolarType
CompactSolarType.java:77: error: cannot find symbol
    GameRegistry.registerItem(this.item, this.hatName);
    ^
  symbol:   variable GameRegistry
  location: class CompactSolarType
CompactSolarType.java:78: error: cannot find symbol
    LanguageRegistry.instance().addStringLocalization("item." + this.hatName + "
.name", name() + "╤╧-°ыхь");
    ^
  symbol:   variable LanguageRegistry
  location: class CompactSolarType
CompactSolarType.java:92: error: cannot find symbol
    Item ironHat = Item.field_77812_ad;
    ^
  symbol:   class Item
  location: class CompactSolarType
CompactSolarType.java:92: error: cannot find symbol
    Item ironHat = Item.field_77812_ad;
                   ^
  symbol:   variable Item
  location: class CompactSolarType
CompactSolarType.java:95: error: cannot find symbol
      ItemStack solarBlock = new ItemStack(block, 0, typ.ordinal());
      ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:95: error: cannot find symbol
      ItemStack solarBlock = new ItemStack(block, 0, typ.ordinal());
                                 ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:96: error: cannot find symbol
      GameRegistry.addShapelessRecipe(new ItemStack(typ.item), new Object[] { so
larBlock, ironHat });
                                          ^
  symbol:   class ItemStack
  location: class CompactSolarType
CompactSolarType.java:96: error: cannot find symbol
      GameRegistry.addShapelessRecipe(new ItemStack(typ.item), new Object[] { so
larBlock, ironHat });
      ^
  symbol:   variable GameRegistry
  location: class CompactSolarType
38 errors

C:\Users\Администратор\Desktop>pause
Для продолжения нажмите любую клавишу . . .


В JAVA вообще не разбираюсь, помогите, как мне всё это провернуть? Как видно ему не хватает файлов для input. Можно ли как-то компилировать без их наличия? А что за ошибки не найден символ? вообще бред какой-то. Мне просто нужно типо скомпилировать и пхнуть в архив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2013, 18:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Компиляция кода без некоторых файлов (Java SE):

Как использовать значения из *.properties файлов без Java кода (в compile time) - Java
Привет! Видел в других проектах подобное использование #файл my.properties user.name = UserName user.pass = UserPass далее,...

java компиляция исходного кода - Java
Доброго времени суток , уважаемые знатоки. Допустим есть класс example с функцией main, помещенный в пакет one. Текущая дериктория src:* ...

Компиляция java кода онлайн - Java SE
Могу-ли я, где нибудь скомпилировать java код и скачать бинарник, онлайн?

Компиляция кода программы из языка Pascal в Java - Java SE
Добрый день, я написал программку в Pascal, но к сожалению, потребовалась также версия данной программы в мобильном устройстве, написал...

Компиляция из нескольких файлов класса - Java
Господа, прошу вашей помощи. пытаюсь скомпилировать класс в котором используется другой класс. player.class успешно скомпилирован и...

Как правильно присоединить пакет java.lang? (компиляция без инструкции import) - Java SE
Друзья! У меня в книжке написано: Вот пытаюсь import javax.swing.*; Заменить на что-нибудь эдакое: ...

8
AckiyBolt
451 / 395 / 6
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.06.2013, 18:43 #2
джава компилятор гуманнее любого бога. он не позволит не то что рождения, а даже зачатия ребенка у которого отсутствует овер 99% хромосом
0
PlatonCraft
3 / 3 / 1
Регистрация: 18.02.2013
Сообщений: 63
03.06.2013, 18:54  [ТС] #3
Цитата Сообщение от AckiyBolt Посмотреть сообщение
джава компилятор гуманнее любого бога. он не позволит не то что рождения, а даже зачатия ребенка у которого отсутствует овер 99% хромосом
Это печально. Просто этот ребенок уже родился и находится в архиве, а чтоб его генно модифицировать, нужно изменить кусок кода, всего лишь.
0
edwin3d
91 / 91 / 7
Регистрация: 18.05.2013
Сообщений: 265
03.06.2013, 18:58 #4
2PlatonCraft:
В Вашем случае можно попробовать напрямую вносить изменения в class файлы ... формат вполне документирован, есть даже готовые цацки типа reJ - http://sourceforge.net/projects/rejava/
0
AckiyBolt
451 / 395 / 6
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.06.2013, 19:08 #5
а там где вы брали моды их сорцов точно не было? на крайняк, если мод халявный, можно написать разрабу с просьбой скинуть сорцы для русской локализации. я не думаю что он откажется. ну если мод халявный
а как вариант декомпилить все и пересобрать
0
mutagen
2561 / 2234 / 72
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
03.06.2013, 19:37 #6
Цитата Сообщение от AckiyBolt Посмотреть сообщение
джава компилятор гуманнее любого бога. он не позволит не то что рождения
да всё она позволяет если браться с умением дела.

берём замокиваем все недостающие классы своей пустой имплементацией и билдимся, а потом просто сунем на место этих классов правильные уже скомпиленные до нас и всё заработает
0
AckiyBolt
451 / 395 / 6
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
03.06.2013, 19:42 #7
так этож мокать надо)
0
mutagen
2561 / 2234 / 72
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
03.06.2013, 19:52 #8
Цитата Сообщение от AckiyBolt Посмотреть сообщение
так этож мокать надо)
ну да - программирование это трудно
0
PlatonCraft
3 / 3 / 1
Регистрация: 18.02.2013
Сообщений: 63
03.06.2013, 22:01  [ТС] #9
Цитата Сообщение от edwin3d Посмотреть сообщение
2PlatonCraft:
В Вашем случае можно попробовать напрямую вносить изменения в class файлы ... формат вполне документирован, есть даже готовые цацки типа reJ - http://sourceforge.net/projects/rejava/
Да мне нужна типо такой. Но как ей пользоваться? напрямую код изменять там нельзя

Добавлено через 3 минуты
Цитата Сообщение от AckiyBolt Посмотреть сообщение
а там где вы брали моды их сорцов точно не было? на крайняк, если мод халявный, можно написать разрабу с просьбой скинуть сорцы для русской локализации. я не думаю что он откажется. ну если мод халявный
а как вариант декомпилить все и пересобрать
Ща посмотрим...

Добавлено через 6 минут
Да, и в правду есть. Вот я тупой!!! Щас компилировать попробую.
0
03.06.2013, 22:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2013, 22:01
Привет! Вот еще темы с ответами:

можно ли в реальности менять СУБД без ущерба (переделки) кода? - Java
Это не очень нагло две темы подряд? Просто привык во всем разбираться до косточек, а вопросов много. -можно ли в реальности менять СУБД...

Минимум и максимум для целого без ветвления кода на java - Java SE
Написал для минимума на Java. Будет работать на машинах, где один байт = 8 бит. Размер целого и размер байта тут константы. /* ...

Открыть несколько текстовых файлов без точного названия - Java SE
Есть несколько файлов с названием начинающимся на " 5_* " , где * определенное кол-во букв , неизвестных программе.Как их открыть , зная...

Генерирование программного кода и компиляция без VS - Visual Basic .NET
Ну например выбираешь флажек чек бокса который пишет код например msgbox("1") и записывает в файл.При нажатии на кнопку этот файл...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.