我创建了一个简单的Hello World Swing应用程序,它可以在Eclipse中编译和运行.我现在正在尝试将此应用程序转移到Maven包结构并将其作为Java Web-Start应用程序运行,这让我感到非常痛苦.运行"mvn clean install"后,javaws似乎加载了几秒钟然后退出.
以下是一些可供参考的内容.我(非常简单)的项目应该是完全可重现的:
包结构(来自树):
??? pom.xml
??? readme.txt
??? SwingWebstartMaven-Client
? ??? pom.xml
? ??? src
? ? ??? main
? ? ? ??? java
? ? ? ? ??? com
? ? ? ? ??? shaunabram
? ? ? ? ??? swingwebstartmaven
? ? ? ? ??? HelloWorldSwing.class
? ? ? ? ??? HelloWorldSwing.java
? ? ? ??? jnlp
? ? ? ? ??? template.vm
? ? ? ??? resources
? ? ??? test
? …
Run Code Online (Sandbox Code Playgroud) 我有一个烦人的问题.现在,我有一段代码片段启动一个线程,在该线程中设置一个计时器,然后退出该线程并继续其生命.我的目的是让程序在继续代码流之前等待TimerTask完成.但是,显然,设置新的TimerTask不会暂停执行以等待定时器运行.
如何设置它以便我的代码到达TimerTask,等待TimerTask过期,然后继续?我是否应该使用计时器?我到处寻找解决方案,但我似乎找不到一个.
timer = new Timer();
Thread t = new Thread(new Runnable(){
boolean isRunning = true;
public void run() {
int delay = 1000;
int period = 1000;
interval = 10;
timerPanel.setText(interval.toString());
//Scheduling the below TimerTask doesn't wait
//for the TimerTask to finish before continuing
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
timerPanel.setText(setInterval().toString());
}
}, delay, period);
System.out.println("Thread done.");
}
});
t.start();
try {
t.join(); //doesn't work as I wanted
} catch (InterruptedException e) {
e.printStackTrace();
}
endTask();
Run Code Online (Sandbox Code Playgroud)
提前致谢.
编辑:对于重复任务的混乱感到抱歉.我需要重复该任务,因为它是一个倒数计时器,每秒从10脉冲到0脉冲.函数setInterval()最终取消计时器.这是相关的代码: …