小编rko*_*oth的帖子

JNLP,Webstart和Maven

我创建了一个简单的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)

java jnlp java-web-start maven

7
推荐指数
1
解决办法
4874
查看次数

Java:在继续执行之前等待TimerTask完成

我有一个烦人的问题.现在,我有一段代码片段启动一个线程,在该线程中设置一个计时器,然后退出该线程并继续其生命.我的目的是让程序在继续代码流之前等待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()最终取消计时器.这是相关的代码: …

java concurrency multithreading timer timertask

1
推荐指数
1
解决办法
7730
查看次数