Всем доброго времени суток. Являясь полнейшим профаном в программировании в целом я наткнулся на сайт http://strolen.com/viewing/Cryptic_Language_-_Times_Ultra-New_Roman
Меня заинтересовал данный вид написания символов, и в самом низу этой статьи есть ссылка на архив, как я понял, для написания их посредством Java-машины. После загрузки этого архива в нём я обнаружил 2 файла с расширением .java : CharacterLibrary и Main. После продолжительного воскуривания мануалов по данной прекрасной среде программирования мной была установлена Java-машина jdk, были со скрипом прописаны пути к bin, в настройках были прописаны пути PATH, и после того как я через консоль пытался компилировать командой javac файл MAIN, консоль ругается вот таким матом:
main.java:32: error: cannot find symbol Y = CharacterLibrary.drawCharacter(g, X, Y, ^ symbol: variable CharacterLibrary location: class Main main.java:46: error: cannot find symbol Y = CharacterLibrary.drawConnect(g,X,Y); ^ symbol: variable CharacterLibrary location: class Main main.java:60: error: cannot find symbol Y = CharacterLibrary.drawCharacter(g, X, Y, ^ symbol: variable CharacterLibrary location: class Main main.java:74: error: cannot find symbol Y = CharacterLibrary.drawConnect(g,X,Y); ^ symbol: variable CharacterLibrary location: class Main 4 errors
Пожалуйста, объясните дебилу, как заставить работать данные файлы.
Java
и возникла путаница с ними (разные переменные среды оказались в несогласованном состоянии). Проще всего, пожалуй, деинсталлировать их все, почистить переменные среды path
и classpath
, чтобы там не осталось никаких упоминаний о java
, и установить какую-то одну версию JDK
. JDK
убедитесь, что компилятор и виртуальная машина доступны и относятся к одной версии. Для этого из консоли выполните команды java -version
и javac -version
. Вы должны увидеть что-то вроде java version "1.8.0_201"
и javac 1.8.0_201
соответственно. Кстати, советую для таких вещей использовать не стандартную виндовскую консоль, а какой-нибудь файловый менеджер типа far
, это намного удобней, видна структура директорий и файлы. C:\myDir
. В ней создайте поддиректорию alientextgenerator
и в эту поддиректорию поместите файлы с исходниками (Main.java
и CharacterLibrary.java
).Зайдите в поддиректорию командой cd C:\myDir\alientextgenerator
или файловым менеджером. По команде dir
или в окне файлового менеджера вы должны видеть свои файлы. В исходной программе есть глупость, которая помешает ей работать -- она будет пытаться создать файл в несуществующей директории. Исправьте -- любым текстовым редактором откройте Main.java
, найдите там строку
ImageIO.write(myImage, "gif", new File("C:\\Users\\Tim\\Desktop\\" + fileName));
(Это почти в самом конце) и замените ее на
ImageIO.write(myImage, "gif", new File(fileName));
Оставаясь в той же поддиректории, откомпилируйте файлы командой javac Main.java CharacterLibrary.java
. Должны появиться файлы Main.class
и CharacterLibrary.class
.
Выйдите из поддиректории в директорию C:\myDir
и запустите программу комндой java alientextgenerator/Main
. Она должна отработать и в вашей текущей директории (C:\myDir
) записать файл example_sentence.png
с нужными вам картинками.
Что именно вы делали не так и почему у вас не получалось, сказать трудно. Алгоритм, который я описал -- не единственный, все это можно проделать и другими способами, но мне показалось, что для новичка этот способ наиболее прост.
Эти фокусы с поддиректорий alientextgenerator
, которые могут показаться бессмысленными, обусловлены принятым в Java
правилом -- классы должны находиться в поддиректориях, чьи названия соответствуют названиям пакетов. В ваших фалах указан пакет -- package alientextgenerator;
, значит файлы *.class
должны находиться в поддиректории .\alientextgenerator
. Если у вас в исходном файле написано package com.my.package;
, виртуальная машина будет искать соответствующий .class
файл в поддиректории \com\my\package\
относительно вашей текущей директории и относительно директорий, перечисленных в переменной среды classpath
и в ключе -cp
, указанном при запуске JVM
из командной строки.
А вообще надо сказать, что jdk
в чистом виде используется крайне редко, в каких-то экзотических ситуациях. Обычно все используют IDE
, такие как Eclipse
, IntelliJ IDEA
и проч. Если всё идет нормально, программист зачастую может годами не вспоминать ключи компилятора или опции виртуальной машины, но разобраться с этим хотя бы раз -- нужно. А разбираться с JDK
и JVM
(как и с программированием на Java
) я бы советовал для начала не по мануалам, а по хорошим учебникам -- напр. Хорстман, "Java SE 8. Базовый курс" (Cay S. Horstmann. Core Java for the Impatient)
Вы компилируете только один класс Main
, но не CharacterLibrary
javac -d /путь/к/папке/с/исходниками Main.java
Виртуальный выделенный сервер (VDS) становится отличным выбором
Только начала изучать Java, возникает ошибка "Polynom( ) in Polynom cannot be applied to (float[], double)" во втором кодеМожете объснить, что она значит и как её исправить?...
Делаю Progressbar и paintComponent должен по чуть-чуть заполнять полосуНаписал следующие методы:
Возможно ли добавить divider со своим цветом в 5dp или Bottom margin в 5dp для итемов Navigation меню?