2017-07-17 110 views
1

我编写了一个小小的java程序。 每一秒我在控制台如何在Java中创建CommandLine(控制台)

System.out.println("Test"); 

我在当下写命令打印的值,如果System.out中。循环开始,我的命令就会消失,并与System.out.println(“”)一起上升。

这是我的代码:

public class Main{ 
public static String s; 
public static void main(String[] args) { 

    printLogo(); 

    Timer timer = new Timer(); 
    timer.scheduleAtFixedRate(new TimerTask() { 
     public void run() { 

      Data.cpuUsage = ((OperatingSystemMXBean) ManagementFactory 
               .getOperatingSystemMXBean()) 
               .getSystemCpuLoad() * 100; 
      Data.totalMem = ((OperatingSystemMXBean) ManagementFactory 
               .getOperatingSystemMXBean()) 
               .getFreePhysicalMemorySize()/1000000; 

      System.out.println(Data.totalMemory); 
     } 
    }, 1000, 1000); 

    System.out.println("Please type a command:"); 

也许有人可以帮我吗? 对不起,我的英语不好。

+0

您的主要方法正在终止,因此定时器正在被终止。看看使用'ScheduledThreadExecutor'。 –

+0

你知道一个网站或某事吗?其他? – Pascal

+0

在这里检查:https://stackoverflow.com/questions/1321620/waiting-for-a-timer-to-finish-in-java –

回答

0

你的问题是你每秒都在打印。每当使用类型的东西,它将被连接到最后一行打印。如果你想在终端中使用某种形式的UI,你将不得不使用某种类型的库(或者至少不只是System.out。*函数)。

结账Charva