Java 音频播放无法正常工作

Java 音频播放无法正常工作,java,linux,swing,audio,cron,Java,Linux,Swing,Audio,Cron,我正在开发一个程序,它可以简单地监控网页的变化,并播放声音文件。我实现了类似于使用SwingUtilities.invokeLater和JOptionPane的功能,以确保声音文件连续循环 程序运行正常。现在我想把它放在crontab(在我的Ubuntu机器上)中,每30分钟运行一次。这就是事情停止运转的地方。我搜索了原因,看起来JOptionPane应该从初始线程(即crontab进程?)调用。我知道我只需要阻止main方法结束,但最好的方法是什么(DataLine.Drain()?)。您试图

我正在开发一个程序,它可以简单地监控网页的变化,并播放声音文件。我实现了类似于使用SwingUtilities.invokeLater和JOptionPane的功能,以确保声音文件连续循环


程序运行正常。现在我想把它放在crontab(在我的Ubuntu机器上)中,每30分钟运行一次。这就是事情停止运转的地方。我搜索了原因,看起来JOptionPane应该从初始线程(即crontab进程?)调用。我知道我只需要阻止main方法结束,但最好的方法是什么(DataLine.Drain()?)。

您试图显示某些内容,但不确保显示服务器存在且可访问(对于由
cron启动的进程而言,这不是给定的)

通过将
display
变量设置为
:0
,可以指定显示服务器。例如:

* * * * * export DISPLAY=:0; YOUR_PROGRAM

另请参见

。。什么是crontab?“看起来JOptionPane应该从初始线程(即crontab进程?)调用”-不,这是一个误解,它应该从事件调度线程(一些框架称之为主线程,但在Java/Swing中这是一个错误的假设)在(运行){thread.sleep(1000*60*30)时调用;invokeWhatsis();}?能否指定程序如何失败?它是否不循环,根本不播放声音,抛出异常。。。?程序的输出是什么?您提到了crontab,所以我假设这是在某种Linux上。哪个用户正在运行该程序?用户是否有权访问显示服务器,以便打开
作业窗格
?寻找details@hendrik-(抱歉我这边回复晚了,但是)谢谢!这解决了我的问题。我不知道对cron显示的访问是如何工作的。有用的东西!