fastqc检验时不能执行java_FASTQC在命令行上运行,但不在python子进程中运行(Java异常)...

博主遇到了一个问题,即FastQC工具在Linux命令行环境下可以正常工作,但通过Python的subprocess模块调用时出现Java错误,具体为"Probable fatal error: No fonts found."。错误出现在SunFontManager的相关方法中,提示找不到字体。文章中提到已经确认了Java版本一致,并怀疑可能是Python子进程环境导致的问题,询问如何确保在Java中正确加载字体包。
摘要由CSDN通过智能技术生成

我使用的命令行工具在从Linux命令行调用它时工作正常,但是当我通过Python subprocess模块调用它时会出现异常。我已经看过了以前的文章,但是没有一篇文章涉及到它如何在命令行上工作,但在Python中却没有。在

这是我得到的回溯样本:Exception in thread "Thread-1" java.lang.Error: Probable fatal error:No fonts found.

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1236)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1100)

at sun.font.SunFontManager.findOtherDeferredFont(SunFontManager.java:1037)

at sun.font.SunFontManager.findDeferredFont(SunFontManager.java:1054)

at sun.font.SunFontManager.findFont2D(SunFontManager.java:2256)

at sun.font.SunFontManager.getDefaultPhysicalFont(SunFontManager.java:1220)

at sun.font.SunFontManager.initialiseDeferredFont(SunFontManager.java:1106)

at sun.font.CompositeFont.doDeferredInitialisation(CompositeFont.java:263)

at sun.font.CompositeFont.getSlotFont(CompositeFont.java:352)

at sun.font.CompositeStrike.getStrikeForSlot(CompositeStrike.java:78)

at sun.font.CompositeStrike.getFontMetrics(CompositeStrike.java:93)

at sun.font.FontDesignMetrics.initMatrixAndMetrics(FontDesignMetrics.java:359)

at sun.font.FontDesignMetrics.(FontDesignMetrics.java:350)

at sun.font.FontDesignMetrics.getMetrics(FontDesignMetrics.java:302)

at sun.java2d.SunGraphics2D.getFontMetrics(SunGraphics2D.java:855)

at uk.ac.babraham.FastQC.Graphs.QualityBoxPlot.paint(QualityBoxPlot.java:88)

at javax.swing.JComponent.print(JComponent.java:1202)

at uk.ac.babraham.FastQC.Modules.AbstractQCModule.writeDefaultImage(AbstractQCModule.java:68)

at uk.ac.babraham.FastQC.Modules.PerBaseQualityScores.makeReport(PerBaseQualityScores.java:199)

at uk.ac.babraham.FastQC.Report.HTMLReportArchive.(HTMLReportArchive.java:131)

at uk.ac.babraham.FastQC.Analysis.OfflineRunner.analysisComplete(OfflineRunner.java:178)

at uk.ac.babraham.FastQC.Analysis.AnalysisRunner.run(AnalysisRunner.java:110)

at java.lang.Thread.run(Thread.java:745)

我这样称呼这个工具:

^{pr2}$

因为命令是我在命令行上运行它的同一个命令。在

我检查以确保从命令行调用的java版本与使用subprocess调用的版本相同。在subprocess中运行环境时,可能会以某种方式修改环境,但是如何确保字体包在java中使用呢?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值