2016-03-25 1 views
0

ながら:Javaのヘッドレス例外私はこのようなサーバー側で(テキストを追加+サイズを変更)の画像を変更する必要がドロー画像

BufferedImage tmp = new BufferedImage(image.getWidth() + 50, image.getHeight() + 100, BufferedImage.TYPE_INT_RGB); 
Graphics graphics = tmp.getGraphics(); 
graphics.fillRect(0, 0, canvas.getWidth(), 40); 
graphics.drawImage(image, 0, 40, null); 
graphics.setFont(graphics.getFont().deriveFont(25f)); 
graphics.setColor(Color.red); 
graphics.drawString(textImage, 20, 30); 
graphics.dispose(); 

をしかし、私はこのエラーを取得する

Caused by: java.awt.HeadlessException 

があります私が忘れた何か?ローカルでは正常に動作しますが、Linuxサーバでは上記のようなエラーが発生します。

ありがとうございました。

EDIT:このヘッドレスな例外を回避する回避策がありますか?

EDIT2:[OK]を、私は、サーバーからログを得た:前に試してみました

Caused by: java.awt.HeadlessException 
    at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:64) 

誰かがグラフィカルにLinuxサーバ上の戦争アプリケーションのインストール時に、私はその誤差時間前に会ったこの

GraphicsConfiguration config = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration(); 
BufferedImage tmp = config.createCompatibleImage(image.getWidth() + 50, image.getHeight() + 100, BufferedImage.TYPE_INT_RGB); 
+0

どの行? textImageとは何ですか? – mauretto

+2

[私のすべてのJavaアプリケーションでjava.awt.headlessexceptionがスローされる可能性があります](http://stackoverflow.com/questions/21343529/all-my-java-applications-now-throw-a-java-awt-headlessexception ) – Berger

+0

@mauretto BufferedImage tmp =新しいBufferedImage(image.getWidth()+ 50、image.getHeight()+ 100、BufferedImage.TYPE_INT_RGB); グラフィックスgraphics = tmp.getGraphics(); – user2363971

答えて

2

を行います環境。

-Djava.awt.headless=trueでjvmを起動すると、問題が解決するはずです。コードがアプリケーションサーバー内で実行されている場合は、そのパラメータを使用してアプリケーションサーバーVMを変更する必要があります。

関連する問題