Предполагается, что этот фрагмент кода должен делать: Обнаруживать все последовательные порты и печатать имена портов на экране.Экспортированный JAR-файл не обнаруживает последовательные порты
Проблема: При запуске в затмении программа обнаруживает последовательные порты в порядке; однако, после экспорта сточной банки и запуска банки, банка обнаруживает NO порты. Я очень сомневаюсь, что это имеет какое-то отношение к самому самому коде (поскольку он отлично работает в eclipse), но я поставил фрагмент на всякий случай, когда я что-то пропустил.
Что я пробовал/сделано/посмотрел на:
Я считал, что это может быть просто мой компьютер, так что я уже попытался запустить банку на другом компьютере, но получил тот же Результаты. Я также убедился, что все в нужном месте (файл jar, DLL-файл и файл свойств). Я проверил четыре раза, чтобы убедиться, что мой путь сборки содержит правильные файлы.
Я уже исследовал: http://www.oracle.com/technetwork/java/index-139971.html
Я провел последний час в поисках сайтов и так вопросы о проблеме, подобной моей, но я не нашел ни одного решения.
Это сайт, который я на основе моего кода прочь: http://en.wikibooks.org/wiki/Serial_Programming/Serial_Java#JavaComm_API
Вопрос:Почему это происходит/Как это исправить?
Дополнительной информация: Я использую javax.comm
с 32 разрядной версией JDK 1.8.0_31 с, работает Windows 8. Файл баночки работает просто отлично (есть отдельный компонент к нему, который работает отлично). Нет ошибок во время компиляции (или предупреждений), и никаких исключений не возникает. Я запускаю банку, используя java -jar program.jar
. Я знаю, что у моего компьютера есть последовательный порт, потому что eclipse показывает COM1, когда я запускаю программу. (Программа также способна обнаруживать параллельные порты, но только в затмении)
boolean portsDetected = false;
Enumeration portIdentifiers = CommPortIdentifier.getPortIdentifiers();
while (portIdentifiers.hasMoreElements()) {
CommPortIdentifier pid = (CommPortIdentifier)portIdentifiers.nextElement();
if ((pid.getPortType() == CommPortIdentifier.PORT_SERIAL)) {
System.out.println(pid.getName());
portsDetected = true;
}
}
if (!portsDetected) {
System.out.println("No serial ports detected");
return 0;
}
Если есть все, что нужно знать, или хотел бы видеть, просите, и получите!
ли вы понять это? У меня такая же проблема –
@UsmanRiaz Я не понял это - на самом деле я отказался от проблемы и передал ее другому человеку. – Aify