IntelliJ IDEA中Plotly代码运行正常但无窗口显示的解决方法
解决IntelliJ IDEA中Scala Plotly代码无法显示预期窗口的问题
我的以下代码可正常执行,但无法显示预期的窗口。我认为这是因IntelliJ IDEA仅启动控制台,阻碍窗口显示所致。请问该如何解决?IDE内是否有相关选项可检查?
import co.theasi.plotly.{Plot, draw} object Main { def main(args : Array[String]) : Unit = { val xs = 0.0 to 2.0 by 0.1 val ys = xs.map { x => x*x } val plot = Plot().withScatter(xs, ys) draw(plot, "my-first-plot") } }
你猜的没错,IntelliJ的运行配置确实可能影响窗口/外部程序的弹出,同时还有个小细节需要注意,咱们一步步来解决:
一、调整运行配置,解除窗口显示限制
- 点击IDE右上角的运行配置下拉框,选择Edit Configurations...
- 在弹出的配置窗口中,找到当前运行
Main类的配置项 - 切换到Configuration标签页,如果看不到
VM options输入框,就点击上方的Modify options,勾选Add VM options - 在输入框中添加参数:
-Djava.awt.headless=false- 这个参数会关闭Java的无头模式,强制允许程序启动图形相关的窗口或外部程序
- 点击
Apply保存配置,重新运行代码即可
二、检查IDE是否拦截了外部程序启动
IntelliJ默认可能会阻止程序启动外部浏览器,你可以这样排查:
- 打开
File > Settings > Tools > Web Browsers - 确认常用的浏览器已添加到列表,且设置为默认浏览器
- 留意IDE右下角是否有"External program launch blocked"的提示,若有点击允许即可
三、关于Plotly输出的小说明
其实你调用的draw()方法默认是生成HTML文件并在浏览器中打开,而非弹出桌面窗口。如果浏览器没自动打开:
- 去项目根目录下的
plotly文件夹里找,会有一个以my-first-plot命名的HTML文件,手动打开就能看到图表 - 如果确实需要桌面窗口显示,你得改用Plotly的离线桌面渲染模式(不过浏览器预览是更常用的方式)
四、确认JDK版本是否完整
有些精简版JDK(比如headless JDK)去掉了图形相关组件,会导致窗口无法启动:
- 打开
File > Project Structure > Project - 确认项目使用的是完整的标准版JDK(比如Oracle JDK或OpenJDK标准版,避开headless版本)
按上面的步骤操作后,应该就能正常看到你的Plotly图表啦!
内容的提问来源于stack exchange,提问作者JarsOfJam-Scheduler
相关产品推荐
相关产品推荐

