Здравствуйте, Данилов Кирилл aka Donz, Вы писали:
ДКA>Статья:
ДКA>J2ME. С чего начать?Автор(ы): Данилов Кирилл aka Donz
Дата: 15.03.2008
Cтатья призвана помочь обойти типичные ошибки, совершаемые при начале работы с платформой J2ME. Основной упор сделан на вещи, до которых автору пришлось доходить самому. Статья подразумевает знание языка Java и основных пакетов J2SE (java.lang.*, java.util.*, java.io.*), и касается в основном CLDC и MIDP.
Хочу написать програмку регистрации данных по уарту, для ХР и мобильных устройств впоследствии. Сходил
http://www.java.com/ru/download/manual.jsp , получил "Поздравляем! У вас установлена рекомендованная версия Java (Version 6 Update 13)." Но никакого JVM ни JAVAC на машине не наблюдается. Скормил
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
java.exe
получил
F:\myDir\Java>java HelloWorld.java
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld/java
Caused by: java.lang.ClassNotFoundException: HelloWorld.java
at java.net.URLClassLoader$1.run(Unknown Source)
..................................
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: HelloWorld.java. Program will exit.
Я чтото делаю не так или нужно еще чтото докачать?
Mobile Java или J2ME говорит — "Виртуальная машина KVM должна быть установлена производителем. Её НЕЛЬЗЯ загрузить и установить самостоятельно." Как вообще отлаживать программы на персоналке? Здесь
J2ME. С чего начать?Автор(ы): Данилов Кирилл aka Donz
Дата: 15.03.2008
Cтатья призвана помочь обойти типичные ошибки, совершаемые при начале работы с платформой J2ME. Основной упор сделан на вещи, до которых автору пришлось доходить самому. Статья подразумевает знание языка Java и основных пакетов J2SE (java.lang.*, java.util.*, java.io.*), и касается в основном CLDC и MIDP.
тексты с import javax.microedition.* или microedition есть для персоналок? Что текое ME EE SE? С чем начать работу что потом на мобильные устройства переносить?
И касательно uart — гдето нашёл что это
http://java.sun.com/products/javacomm/index.jsp не доделано, вроде это правильно
http://rxtx.qbang.org/wiki/index.php/Download (видимо для линух). Но мне полный flow control не нужен, нужно только читать, uart можно открыть как файл, или еще както? Можно ли найти чтение uart на мобильных платформах?
нашел компилятор, нужно было JDK скачать, линкощика пока не нахожу, ну ладно разберусь. Вопросы остаются.
как у JAVA с переносимостью на КПК?
uart можно читать как файл или только через то API
JAR-ы слинковал, только не запускаются
манифест какойто нужен
и с манифестом разобрался. Такой файлец туда нужно Main-Class: HelloWorld вписать. Программой 7z можно.
вопросы 1,2 остаются
Здравствуйте, Аноним, Вы писали:
А>Я чтото делаю не так или нужно еще чтото докачать?
Надо запускать скомпилированную ява-программу, причем нужно указывать не имя файла для запуска, а название класса, который должен находиться в classpath, чтобы виртуальная машина его нашла. Классы из текущего каталога включаются в classpath автоматически. Соответственно, сначала компилируешь (компилятору надо указывать файлы для компиляции) javac HelloWorld.java, потом исполняешь java HelloWorld.
Линковщика как такого в ява нет, при запуске ты указываешь путь до классов (classpath), где ВМ будет искать классы для исполнения.
Вообще, зря ты сразу полез в мобильную яву. Посиди хотя бы пару дней на десктопной. Учитывая твой сишный опыт, в яву врубишься очень быстро. Пока видно, как и что делать ты нашел, но не факт, что понимаешь, для чего все это нужно. Выбери книгу для начинающих из этого списка:
http://skipy.ru/useful/books.html, и проблемы с манифестом и запуском исчезнут. skipy.ru вообще стоит почитать.
А> Mobile Java или J2ME говорит — "Виртуальная машина KVM должна быть установлена производителем. Её НЕЛЬЗЯ загрузить и установить самостоятельно."
Неправильно написано. Хотя там и идет речь о мобильных устройствах, но, например, на виндовые КПК KVM устанавливается вполне нормально.
А>Как вообще отлаживать программы на персоналке?
Дебаггером, jdb — консольный, но им пользуются только фанаты. А так ставь понравившуюся IDE (я предпочитаю IntelliJ IDEA), там средства удобной отладки встроены
А>здесь тексты с import javax.microedition.* или microedition есть для персоналок?
Есть, в статье же написано. Надо установить эмулятор мобильного устройства. Например, от SonyEricsson. Все нужные ссылки в статье даны. Но эмуляторы используются для разработки, писать для десктопа программу, которая будет работать в эмуляторе — не лучшее решение, в смысле, это бессмысленно.
А>Что текое ME EE SE?
ME — mobile edition (ява для мобильных устройств), SE — standart edition (ява для обычных компов), EE — enterprise edition (ява для серверов с упором в веб-приложения)
А>С чем начать работу что потом на мобильные устройства переносить?
Как уже говорил, сначала надо освоить десктопную яву. Для мобил надо писать отдельное приложение. Перенести удастся только базовые вещи. В мобильной яве только небольшая часть самых основных классов пересекается с обычной явой.
А>Но мне полный flow control не нужен, нужно только читать, uart можно открыть как файл, или еще както? Можно ли найти чтение uart на мобильных платформах?
В мобильной яве для работы с любым внешним ресурсом используется Connection для соединения и InputStream и OutputStream для чтения/записи (есть специализированные классы-наследники для разных типов соединений). Получить соединение для уарта можно через что-то типа Connector.open( "comm:0;baudrate=9600" ); Точную строку урла для соединения надо смотреть в документации от устройства, для которого пишешь. Некоторые устройства могут вообще не поддерживать работу с ком-портами.
В стандартной яве для каждого типа соединения используется свой класс или пакет классов, но чтение и запись происходят через те же InputStream и OutputStream. Для уарта ты правильно нашел Java Communications API. Можно ли извратиться и считать как файл — хз, навряд ли. Да и зачем — есть же специальное апи как раз для работы с ком-портами.
А>Можно ли найти чтение uart на мобильных платформах?
Посмотри в документации от производителей (SonyEricsson, Nokia) и на форумах их порталов, там точно должно быть. Ссылки есть в статье.
А>как у JAVA с переносимостью на КПК?
Если имеется в виду SE -> ME, то плохо, так как это разные платформы, и общих классов совсем немного. Если имеешь в виду переносимость с одного мобильного устройства на другое, то более менее. Но у разных устройств может быть разная реализация KVM и, соответственно, свои баги и фичи. Об этом тоже написано в стать.
Конкретно с уартом возможно будут отличаться строки соединения.