#java #classpath #tinyos
#java #classpath #tinyos
Вопрос:
Я просматриваю урок Tiny OS tutorial урок номер 4 «Последовательная связь Mote-PC и SerialForwarder», и я застрял на строке, где говорится: «После того, как вы установили TestSerial, вам нужно запустить соответствующее Java-приложение, которое взаимодействует с ним через последовательный порт. Это создается при сборке приложения TinyOS. Из каталога приложения введите
$ java TestSerial
Однако, когда я набираю это, я сталкиваюсь со следующей ошибкой
Error: Could not find or load main class TestSerial
Я попробовал несколько способов исправить эту проблему, но ничего не помогло.
Решения, которые я пробовал:
- задайте CLASSPATH для каталога, в котором я нахожусь в данный момент, который является
экспортировать CLASSPATH=.:/home/wsn/tinyos-main/приложения / тесты /TestSerial
2)задайте CLASSPATH для каталога, в котором находится tinyos.jar находится
экспорт CLASSPATH=.:/home/wsn/tinyos-main/support/sdk/java/tinyos.jar
3) запустите команду, используя java -cp . TestSerial
однако у меня продолжает возникать одна и та же ошибка
Есть ли другой лучший способ это исправить?
Я использую виртуальную машину с ОС Fedora
Я пытаюсь запустить программу на платформе mib520 и использую iris motes
моя версия Java
openjdk версии «1.8.0_31»
Среда выполнения OpenJDK (сборка 1.8.0_31-b13)
Серверная виртуальная машина OpenJDK (сборка 25.31-b07, смешанный режим)
Комментарии:
1.
TestSerial.class
Действительно ли он присутствует в вашем рабочем каталоге?2. @Michael Jaros нет, это не так, но в руководстве об этом ничего не упоминалось, я полагаю, предполагая, что это должно быть там по умолчанию. У меня есть TestSerial.java хотя там и это я тоже пытался запустить, используя те же команды. Извините, я так же хорошо знаком с Java, поэтому не уверен, что именно представляет собой процесс компиляции
3.
TestSerial.java
необходимо скомпилировать перед выполнением: просто вызовитеjavac TestSerial.java
. Это создаст скомпилированный файл класса. Я предполагаю, что с точки зрения руководства, один из предыдущих шагов должен был сделать это, но не сработал так, как ожидалось.4. bash: javac: команда не найдена …. когда я зашел в каталог java, который является /usr / lib / jvm / java-1.8.0-openjdk-1.8.0.31-5.b13.fc21.i386 / jre / bin /, я даже не нашел файл javac
5. Java поставляется в двух видах дистрибутивов: JRE (только для выполнения) и JDK (для разработки). Большинству людей нужен только JRE, но для того, чтобы иметь возможность компилировать
.java
файлы, вам нужен JDK.
Ответ №1:
Вы, должно быть, пропустили шаг, когда вам нужно было выполнить команду make.
Перейдите в папку apps / tests / TestSerial и введите make [platform]
(например, make telosb, make iris и т.д.), файл makefile, который будет запущен, будет файлом makefile в папке TestSerial, которая определяется следующим образом:
COMPONENT=TestSerialAppC
TOSMAKE_PRE_EXE_DEPS = TestSerial.class
TOSMAKE_CLEAN_EXTRA = *.class TestSerialMsg.java
TestSerial.class: $(wildcard *.java) TestSerialMsg.java
javac -target 1.4 -source 1.4 *.java
TestSerialMsg.java:
nescc-mig java $(CFLAGS) -java-classname=TestSerialMsg TestSerial.h test_serial_msg -o $@
TINYOS_ROOT_DIR?=../../..
include $(TINYOS_ROOT_DIR)/Makefile.include
Итак, makefile компилируется TestSerial.java. После этого вы можете приступить к установке приложения, а затем запустить приложение TestSerial.
Итак, шаг за шагом, например, на iris mote, вы бы
-
Перейдите к
apps/tests/TestSerial
папке -
Создайте приложение, введя
make iris
-
Подключите свой mote и затем введите
motelist
. Эта команда выведет список всех подключенных узлов. Имя вашего устройства должно быть указано в разделе «Устройство». Запомните это для использования в следующих двух шагах. -
Установите ваше приложение, введя команду
make iris install.1 bsl, [DEVICE NAME]
. Это создаст и загрузит вашу программу на ваше устройство. -
Запустите приложение TestSerial, выполнив
java TestSerial -comm serial@[DEVICE NAME]:iris
Если вы используете другую платформу, такую как telosb, тогда просто замените все вхождения iris в командах выше на telosb.
Комментарии:
1. Привет @KillaKem, команда make iris не работала, пока я не скомпилировал TestSerialMsg.java файл и добавлен текущий каталог в CLASSPATH, поэтому я предполагаю, что эти шаги должны быть самыми первыми. В остальном теперь все работает, спасибо за ваши предложения