Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65

Ошибка при загрузке XML DOM

10.12.2017, 22:11. Показов 1252. Ответов 14

Студворк — интернет-сервис помощи студентам
Пытаюсь настроить загрузку настроек из XML файла.
Но выдает java.lang.NullPointerException. Через дебаггер отследил. Файл изначально некорректно парcится в переменную doc.
Не могу понять что я сделал не так. Помогите плз.

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
100
101
102
103
package MagicAnvil;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
 
public class PropertyReader {
    private File file = null;
    private Document doc;
    private HashMap<String, HashMap<String, Object>> properties = null;
 
 
    private PropertyReader() {
        file = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath() + "/MagicAnvil/MaterialsProperties.xml");
        properties = parseXml();
    }
 
    private HashMap<String, HashMap<String, Object>> parseXml(){
        HashMap<String, HashMap<String, Object>> prop = new HashMap();
        HashMap<String, Object> singleMaterial;
        try{
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
 
            if(file!=null) {
                doc = db.parse(file);
            }
            else
                throw new Exception("Отсутствует база материалов. MaterialProperties.xml");
 
        }catch (Exception e){
            e.printStackTrace();
        }
 
        doc.getDocumentElement().normalize();
        NodeList materialsList = doc.getElementsByTagName("Materials");
        Element material;
        NodeList temp;
        Element temp2;
 
 
        HashMap<String, Integer> elements = new HashMap<>();
        ArrayList< HashMap<Integer, Integer>> effects = new ArrayList<>();
        Double qualityMultiplicator;
        String stat, color;
 
        for (int i = 0; i < materialsList.getLength() ; i++) {
 
 
            material = (Element)materialsList.item(i);
 
            /**заполняем мапу стихийных бонусов**/
            temp = material.getElementsByTagName("Elements");
            for (int j = 0; j <temp.getLength(); j++) {
                elements.put(temp.item(j).getNodeName(),Integer.parseInt(temp.item(j).getNodeValue()));
            }
            /**заполняем массив эффектов. Содержит мапы с индексами эффектов и шанс их прока**/
            temp = material.getElementsByTagName("Effects");
            for (int j = 0; j <temp.getLength(); j++) {
                temp2 = (Element)temp.item(i);
                HashMap<Integer, Integer> effect = new HashMap<>();
                effect.put(Integer.parseInt(temp2.getElementsByTagName("Index").item(0).getNodeValue()),
                        Integer.parseInt(temp2.getElementsByTagName("Chance").item(0).getNodeValue()));
                effects.add(effect);
            }
            /**заполняем оставшиеся простые атрибуты**/
            temp = material.getElementsByTagName("QualityMultiplicator");
            qualityMultiplicator = Double.parseDouble(temp.item(0).getNodeValue());
            temp = material.getElementsByTagName("Stat");
            stat = temp.item(0).getNodeValue();
            temp = material.getElementsByTagName("Color");
            color = temp.item(0).getNodeValue();
 
            /**сводим все данные материала в одну запись**/
            singleMaterial = new HashMap<>();
            singleMaterial.put("Elements", elements);
            singleMaterial.put("Effects", effects);
            singleMaterial.put("QualityMultiplicator", qualityMultiplicator);
            singleMaterial.put("Stat", stat);
            singleMaterial.put("Color", color);
 
            /**заносим запись о материале в общий список материалов**/
            prop.put(material.getNodeName(), singleMaterial);
        }
        return prop;
    }
 
    public HashMap<String, Object>  getMyProperty(String s) {
        return properties.get(s);
    }
 
    private static PropertyReader ourInstance = new PropertyReader();
    public static PropertyReader getInstance() {
        return ourInstance;
    }
 
}
Собственно сам XML

XML
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
<?xml version="1.0"?>
<Materials>
 
    <FireLizardSkin>
        <Elements>
            <FIRE>20</FIRE>
            <EARTH>10</EARTH>
        </Elements>
        <QualityMultiplicator> 3.0</QualityMultiplicator>
        <Effects>
            <Effect>
                <Index>0</Index>
                <Chance>0</Chance>
            </Effect>
        </Effects>
        <Stat>AGILITY</Stat>
        <Color>FIRE_ORANGE</Color>
    </FireLizardSkin>
 
    <GloomyFish>
        <Elements>
            <WATER>20</WATER>
            <DARK>10</DARK>
        </Elements>
        <QualityMultiplicator> 3.0</QualityMultiplicator>
        <Effect>
            <Index>0</Index>
            <Chance>0</Chance>
        </Effect>
        <Stat>ACCURACY</Stat>
        <Color>WATER_BLUE</Color>
    </GloomyFish>
 
</Materials>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.12.2017, 22:11
Ответы с готовыми решениями:

Ошибка при загрузке xml файла через ajax
Такой код $.ajax({ type: &quot;GET&quot;, url: &quot;http://export.yandex.ru/weather-ng/forecasts/27530.xml&quot;, dataType:...

Undefined в переменной при загрузке DOM
Есть php-файл следующего содержания: &lt;?php //некий php-код, не суть важно ?&gt; &lt;script&gt; //код скрипта, не суть важно ...

Ошибка при загрузке xml файла с маркером комментария "<!--"
Постоянно выбивает ошибку при загрузке xml файла с маркером комментария &quot;&lt;!--&quot; :&quot;Комментарий XML не может содержать &quot;--&quot;, а...

14
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
10.12.2017, 23:06
стэктрейс давай
0
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
11.12.2017, 22:47  [ТС]
стектрейс:

"C:\Program Files\Java\jdk1.8.0_131\bin\java" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.5\lib\idea_rt.jar=55056:C:\Progra m Files\JetBrains\IntelliJ IDEA 2017.2.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_131\jre\lib\charsets .jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\deploy.j ar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\acce ss-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\cldr data.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\dnsn s.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jacc ess.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\jfxr t.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\loca ledata.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\nash orn.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sune c.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunj ce_provider.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunm scapi.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\sunp kcs11.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\ext\zipf s.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\javaws.j ar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jce.jar; C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfr.jar; C:\Program Files\Java\jdk1.8.0_131\jre\lib\jfxswt.j ar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\jsse.jar ;C:\Program Files\Java\jdk1.8.0_131\jre\lib\manageme nt-agent.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\plugin.j ar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\resource s.jar;C:\Program Files\Java\jdk1.8.0_131\jre\lib\rt.jar;H :\Learn\Gitrep\MagicAnvil\out\production \MagicAnvil" MagicAnvil.Main
null
java.lang.NullPointerException
at MagicAnvil.Material.loadProperties(Mater ial.java:80)
at MagicAnvil.Materials.FireLisardSkin.<ini t>(FireLisardSkin.java:14)
at MagicAnvil.Main.main(Main.java:24)

Process finished with exit code 0

Соответственно все упомянутые в нем классы:
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
package MagicAnvil;
 
import MagicAnvil.Materials.FireLisardSkin;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
 
 
 
public class Main /**extends Application **/{
 
   // @Override
   // public void start(Stage primaryStage) throws Exception{
   //     Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
    //    primaryStage.setTitle("Hello World");
   //     primaryStage.setScene(new Scene(root, 300, 275));
   //     primaryStage.show();
  //  }
 
    public static void main(String[] args) {
       // launch(args);
        FireLisardSkin skin = new FireLisardSkin(Material.Quality.BAD);
        System.out.println(skin.color);
    }
 
}
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package MagicAnvil;
 
import javax.swing.*;
import javax.xml.bind.Element;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
 
public abstract class Material {
    protected Quality quality; /** для каждого экземпляра материала этот показатель может быть разным**/
    protected double qualityMultiplicator; /** шкура дракона явно крепче шкурки кота. Мультипликатор показывает насколько**/
    protected BundleOfElements elements; /** стихийные свойства материала - единые для всех экземпляров материала**/
    protected Effect effects; /** список эффектов, которые дает материал. например паутина - дает эффект тихого шага**/
    protected Stats stat; /** указывает на атрибут которые добавляет данный материал**/
    protected Colors color; /** указвает на преобладающий цвет материала**/
 
    protected class BundleOfElements {
        /**возможные елементы. в %. сумма всех показателей не может быть больше 100**/
        private HashMap<Elements, Integer> elements;
 
        public BundleOfElements(HashMap<String, Integer> props){
            int sum = 0;
            for (String s : props.keySet()) {
                    elements.put(Elements.valueOf(s), props.get(s));
            }
 
            for (Elements elem: Elements.values()) {
                if(!elements.containsKey(elem))
                    elements.put(elem,0);
                else
                    sum += elements.get(elem);
            }
            try {
                if (sum != 0) {
                    if (sum < 100) {
                        elements.put(Elements.BASE, (100 - sum));
                    } else
                        throw new Exception("Неверно указаны данные материала! Сумма показателей не может быть больше 100!");
                }
            }catch(Exception e){
                e.printStackTrace();
            }
        }
    }
 
    protected enum Colors {
        AIR_YELLOW,
        FIRE_ORANGE,
        EARTH_BROWN,
        WATER_BLUE,
        LIVE_GREEN,
        DEATH_PURPLE,
        LIGHT_WHITE,
        DARK_BLACK,
        CHAOS_SHIFTING,
        ORDER_GRAY,
        BLOOD_RED,
        SHADOW_SMOKY_GRAY
    }
 
    protected class Effect {
        /**список всех эффектов. ключ к мапе - индекс ефекта, значение - шанс прока**/
        ArrayList<HashMap<Integer, Integer>> allEffects;
 
        public Effect(ArrayList<HashMap<Integer,Integer>> prop){
            allEffects = prop;
        }
    }
 
    protected enum Quality {
        BAD,
        COMMON,
        GOOD,
        IDEAL;
    }
 
    protected void loadProperties(){
        try {
            HashMap<String, Object> property = PropertyReader.getInstance().getMyProperty(this.getClass().getSimpleName());
            this.elements = new BundleOfElements((HashMap<String, Integer>)property.get("Elements"));
            this.qualityMultiplicator = Double.parseDouble((String)property.get("QualityMultiplicator"));
            this.effects = new Effect((ArrayList<HashMap<Integer, Integer>>)property.get("Effect"));
            this.stat = Stats.valueOf((String)property.get("Stat"));
            this.color = Colors.valueOf((String)property.get("Color"));
        }catch(Exception e){
            e.printStackTrace();
        }
    }
 
    protected enum Stats {
        AGILITY,
        ENDURANCE,
        STRENGTH,
        CONSTITUTION,
        INTELLIGENCE,
        WISDOM,
        LUCK,
        PHISIC_CRIT_RATE,
        MAGIC_CRIT_RATE,
        PHISIC_CRIT_CHANCE,
        MAGIC_CRIT_CHANCE,
        ACCURACY,
        PENETRATION;
    }
 
    protected enum Elements {
        BASE,
        AIR,
        FIRE,
        EARTH,
        WATER,
        LIVE,
        DEATH,
        LIGHT,
        DARK,
        CHAOS,
        ORDER,
        BLOOD,
        SHADOW;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package MagicAnvil.Materials;
 
import MagicAnvil.Material;
 
public class FireLisardSkin extends Material {
 
    public FireLisardSkin(){
        this.quality = Quality.COMMON;
        loadProperties();
    }
 
    public FireLisardSkin(Quality q){
        this.quality = q;
        loadProperties();
    }
}
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
11.12.2017, 23:23
Ну ставь брейкпоинт в 80 строку, смотри где там. Null
0
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
12.12.2017, 08:50  [ТС]
Как я написал в самом первом сообщении - документ неправильно парсится в переменную doc. Хотя внешне, все сделал по инструкции
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.12.2017, 09:27
ну значит ставь брейкпоинт в PropertyReader и смотри, что происходит
0
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
12.12.2017, 11:15  [ТС]
Да. Именно там и возникает ошибка - nulldocument. Насколько я понимаю это пустой документ, без наполнения. Соответственно мапы заполняются nullами.
Именно на этот вопрос я не могу ответить, почему переменная doc парсится неправильно?
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.12.2017, 11:16
где там то?
0
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
12.12.2017, 22:23  [ТС]
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
100
101
102
103
package MagicAnvil;
 
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
 
public class PropertyReader {
    private File file = null;
    private Document doc;
    private HashMap<String, HashMap<String, Object>> properties = null;
 
 
    private PropertyReader() {
        file = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath() + "/MagicAnvil/MaterialsProperties.xml");
        properties = parseXml();
    }
 
    private HashMap<String, HashMap<String, Object>> parseXml(){
        HashMap<String, HashMap<String, Object>> prop = new HashMap();
        HashMap<String, Object> singleMaterial;
        try{
            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
            DocumentBuilder db = dbf.newDocumentBuilder();
 
            if(file!=null) {
               doc = db.parse(file);//вот в этой строке происходит заполнение переменной пустым документом
            }
            else
                throw new Exception("Отсутствует база материалов. MaterialProperties.xml");
 
        }catch (Exception e){
            e.printStackTrace();
        }
 
        doc.getDocumentElement().normalize();
        NodeList materialsList = doc.getElementsByTagName("Materials");
        Element material;
        NodeList temp;
        Element temp2;
 
 
        HashMap<String, Integer> elements = new HashMap<>();
        ArrayList< HashMap<Integer, Integer>> effects = new ArrayList<>();
        Double qualityMultiplicator;
        String stat, color;
 
        for (int i = 0; i < materialsList.getLength() ; i++) {
 
 
            material = (Element)materialsList.item(i);
 
            /**заполняем мапу стихийных бонусов**/
            temp = material.getElementsByTagName("Elements");
            for (int j = 0; j <temp.getLength(); j++) {
                elements.put(temp.item(j).getNodeName(),Integer.parseInt(temp.item(j).getNodeValue()));
            }
            /**заполняем массив эффектов. Содержит мапы с индексами эффектов и шанс их прока**/
            temp = material.getElementsByTagName("Effects");
            for (int j = 0; j <temp.getLength(); j++) {
                temp2 = (Element)temp.item(i);
                HashMap<Integer, Integer> effect = new HashMap<>();
                effect.put(Integer.parseInt(temp2.getElementsByTagName("Index").item(0).getNodeValue()),
                        Integer.parseInt(temp2.getElementsByTagName("Chance").item(0).getNodeValue()));
                effects.add(effect);
            }
            /**заполняем оставшиеся простые атрибуты**/
            temp = material.getElementsByTagName("QualityMultiplicator");
            qualityMultiplicator = Double.parseDouble(temp.item(0).getNodeValue());
            temp = material.getElementsByTagName("Stat");
            stat = temp.item(0).getNodeValue();
            temp = material.getElementsByTagName("Color");
            color = temp.item(0).getNodeValue();
 
            /**сводим все данные материала в одну запись**/
            singleMaterial = new HashMap<>();
            singleMaterial.put("Elements", elements);
            singleMaterial.put("Effects", effects);
            singleMaterial.put("QualityMultiplicator", qualityMultiplicator);
            singleMaterial.put("Stat", stat);
            singleMaterial.put("Color", color);
 
            /**заносим запись о материале в общий список материалов**/
            prop.put(material.getNodeName(), singleMaterial);
        }
        return prop;
    }
 
    public HashMap<String, Object>  getMyProperty(String s) {
        return properties.get(s);
    }
 
    private static PropertyReader ourInstance = new PropertyReader();
    public static PropertyReader getInstance() {
        return ourInstance;
    }
 
}
в 32 строке
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
12.12.2017, 22:39
я тебе еще раз говорю, запусти дебаггер, и посмотри, что происходит повнимательнее
Изображения
 
0
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
13.12.2017, 16:29  [ТС]
Возможно я не понимаю куда смотреть...
вот что мне показывает дебаггер:


И это уже после того как блок отработал и переменная должна бы заполнится
0
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
13.12.2017, 16:38  [ТС]
Очень уж своеобразно тут изображения загружаются...
Миниатюры
Ошибка при загрузке XML  DOM  
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
13.12.2017, 20:28
ну так разверни объект то
0
1 / 1 / 1
Регистрация: 04.10.2013
Сообщений: 65
14.12.2017, 19:22  [ТС]
Разобрался.
Проблема была в том, что я неправильно брал корневой документ.
Переделал - всплыли другие ошибки, после исправления которых - все заработало
0
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
14.12.2017, 19:25
шыкарно
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2017, 19:25
Помогаю со студенческими работами здесь

Ошибка при загрузке данных через (Обработка "Выгрузка и загрузка данных XML")
Доброго времени суток. Возникла проблема при загрузке документов с УПП 1.3. (не типовая) на УПП 1.3. (типовая), через (Обработка...

Как получить путь до конкретного элмента ? | XML | DOM | Simple XML
Добрый день! Как Вы уже знаете, в Simple XML, чтобы получить доступ в XML файле к какому-либо элементу, нужно знать его путь....

Подскажите, как парсить все xml файлы, вложенные в дочерние директории с исп. xml.dom.minidom?
Всем привет. Есть следующая структура папок: &lt;img src=&quot;https://habrastorage.org/webt/5d/0b/8f/5d0b8f031f86c050844094.png&quot;...

Указать прокси при загрузке XML
В программе есть XmlReader FF = XmlReader.Create(textBox1.Text); где textBox1.Text это строка в которую вводят ссылку на RSS канал, как...

При загрузке XML файла выкидывает из приложения
Доброй ночи! в приложении у меня используются xml файлы, они создаются, изменяются, удаляются Когда запускаешь в среде QtCreator все...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru