Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> javax.comm и JWS (JApplet) 
V
    Опции темы
Metal_Heart
Дата 16.9.2008, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: нет
Всего: 12



У меня есть задача:
написать апплет, а затем приложение с использованием JavaWebStart имеющие доступ к COM-портам.
Использую старую добрую библу от SUN-a (см. прикрепленный файл)

Затем написал приложение, которое работает, а как апплет - не хочет:
Код

import javax.comm.CommPortIdentifier;
import javax.swing.*;
import java.util.Enumeration;

/**
 * mail to: [email protected]
 * begin: 16.09.2008
 */
public class CommPort_and_JWS extends JApplet
{
//-----------------------------------------------------------------
public void testPorts()
{
 Enumeration ports =  CommPortIdentifier.getPortIdentifiers();
 while (ports.hasMoreElements())
 {
   CommPortIdentifier port = (CommPortIdentifier)ports.nextElement();
   String type;
   switch (port.getPortType())
   {
     case CommPortIdentifier.PORT_PARALLEL:
       type = "Parallel";
       break;
     case CommPortIdentifier.PORT_SERIAL:
       type = "Serial";
       break;
     default:
       type = "Unknown";
       break;
   }
   System.out.println(port.getName() + ": " + type);
 }
}
//-----------------------------------------------------------------
public void start()
{
 new CommPort_and_JWS().testPorts();
}
//-----------------------------------------------------------------
public static void main(String[] args)
{
 new CommPort_and_JWS().testPorts();
}
//-----------------------------------------------------------------
}


Вывод работы программы как приложения:
Код

COM1: Serial
COM5: Serial
COM8: Serial
COM6: Serial
COM2: Serial
COM12: Serial
LPT1: Parallel
LPT2: Parallel



Вывод работы программы как апплета:
Код

Caught java.lang.NullPointerException: name can't be null while loading driver com.sun.comm.Win32Driver


Пробовал подключать этот "Win32Driver" статически, но тогда ругался, что он уже загружен, но проблему всё-равно не решило.

Расширю вопрос, как подключаются нативные библиотеки в апплетах и JWS и как поступить в данном случае?

Это сообщение отредактировал(а) Metal_Heart - 16.9.2008, 14:30

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  javax_comm.zip 32,25 Kb


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
Metal_Heart
Дата 23.9.2008, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: нет
Всего: 12



Наконец-то!

Код

import javax.comm.CommPortIdentifier;
import javax.swing.*;
import java.util.Enumeration;
/**
 * mail to: [email protected]
 * begin: 16.09.2008
 */
public class CommPort_and_JWS extends JApplet
{
//-----------------------------------------------------------------
public void testPorts()
{
// **** чего мне так не хватало ****
//String driverName = "com.sun.comm.Win32Driver";    //для венды:
String driverName = "com.sun.comm.LinuxDriver";      //для Linuxa

 try
 {
  CommDriver driver = (CommDriver) Class.forName(driverName).newInstance(); 
  driver.initialize();
 } catch (Throwable e) {e.printStackTrace();}
// *****************************



Enumeration ports =  CommPortIdentifier.getPortIdentifiers();
 while (ports.hasMoreElements())
 {
   CommPortIdentifier port = (CommPortIdentifier)ports.nextElement();
   String type;
   switch (port.getPortType())
   {
     case CommPortIdentifier.PORT_PARALLEL:
       type = "Parallel";
       break;
     case CommPortIdentifier.PORT_SERIAL:
       type = "Serial";
       break;
     default:
       type = "Unknown";
       break;
   }
   System.out.println(port.getName() + ": " + type);
 }
}
//-----------------------------------------------------------------
public void start()
{
 new CommPort_and_JWS().testPorts();
}
//-----------------------------------------------------------------
public static void main(String[] args)
{
 new CommPort_and_JWS().testPorts();
}
//-----------------------------------------------------------------
}


Это сообщение отредактировал(а) Metal_Heart - 23.9.2008, 15:00


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
Metal_Heart
Дата 23.9.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: нет
Всего: 12



Да, чуть не забыл!
Без этой штуки она почему-то не работает:
Код

 System.setSecurityManager(null);

 smile 


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.