Я создаю приложение Java, которое будет выполнять некоторую обработку, тогда вам нужно будет отобразить сообщение, чтобы дать пользователю обратную связь.
Однако он кажется невероятно медленным - для возврата требуется более двух секунд.
Я отключил источник до очевидного виновника, и здесь используется код:
package SwingPlay;
import javax.swing.JFrame;
public class Dialog
{
public static void main( String[] args )
{
JFrame frame = new JFrame( "DialogDemo" );
}
}
Я выполняю это из командной строки с помощью
java -classpath . SwingPlay.Dialog
Как вы можете видеть - я ничего не делаю, кроме создания JFrame, даже не отображая его.
В случае, если это имеет значение, вот мой вывод java -version
:
java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)
И это (в настоящее время) работает с Win XP SP2.
Итак, первый вопрос: почему это так медленно?
Что еще более важно, я просто хочу, чтобы простое сообщение (GUI, а не cmdline) отображалось без задержки - может ли кто-нибудь предоставить код для этого?
Update:
Может быть полезно немного фона:
Я создаю приложение, которое будет иметь множество "головок" (то есть различные пользовательские интерфейсы, которые используют одни и те же основные классы для выполнения сложных частей).
В настоящее время у меня есть чистая командная строка, которая отлично работает, - сразу отвечает.
У меня также будет стандартное приложение с обычной точкой и нажмите GUI и не предвидеть проблемы с этим битом.
В настоящее время я работаю над гибридом этих двух - он будет запущен из окна" Выполнить" (или аналогичной пусковой установки), возможно с аргументами, и должен отвечать только сообщение статуса, которое может быть уволены с помощью нажатия клавиши.
В этом последнем вопросе сосредоточен вопрос.
Хотя я не против использования моей существующей версии командной строки со сценариями оболочки (хотя и не думал, что это будет необходимо!), существующие ответы, похоже, предполагают, что все работает не так быстро для меня, как для другие - один пример занимает 1460 мс для меня, против 70 мс - значительная разница.