2016-08-18 3 views
0

demoJavaアプリケーションが起動ばかり

コード:

public byte[] getThumbnail(byte[] imageBytes) throws Exception { 
    ByteArrayInputStream inputStream = new ByteArrayInputStream(imageBytes); 
    ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); 
    Thumbnails.of(inputStream).size(50, 50).keepAspectRatio(true) 
      .outputFormat("jpg").toOutputStream(outputStream); 
    byte[] picture = outputStream.toByteArray(); 
    return picture; 
} 

私は上記のコードでは画像からサムネイルを生成しようとしています。

上記の関数を呼び出すと、添付されたスクリーンショットに表示されるJavaアイコンが表示されます。このアイコンを閉じると、アプリケーションが閉じられます。

+0

メソッドを呼び出すコンテキストを教えてください。 – AlterV

+0

私はすでに上記の私のポストでは、私は与えられた画像のサムネイルを生成しようとしていると思います。私は画像のバイト[]配列を持っており、サムネイルにはバイト[]が必要です。 –

+0

コードをデバッグしようとしましたが、Javaアイコンが起動しています: 'Thumbnails.of(inputStream).size(50、50).keepAspectRatio(true) .outputFormat(" jpg ")。toOutputStream(outputStream); ' –

答えて

1

使用するイメージングコードの一部がフードの下にawtを使用するため、ドックアイコンが表示されます。これにより、ドックアイコンがOS Xに表示されるようになります。ただし、アイコンを非表示にすることは可能です。

これは、マウス、キーボード、またはスクリーンのフィードバック(つまり、ウィンドウ)を使用したユーザーインタラクションなしでアプリケーションを「ヘッドレス」モードで実行しているクロスプラットフォームの方法です。このようなコードでは、

java -Djava.awt.headless=true 

代わりに:あなたは、このようなコマンドラインでシステムプロパティjava.awt.headlessを使用して、起動時にヘッドレスモードを指定することができます

System.setProperty("java.awt.headless", "true"); 
OS Xの場合

(およびApple JRE)あなたが代わりにシステムプロパティapple.awt.UIElementを使用することができ、それが唯一のドックアイコンを抑制するが、それ以外のアプリの利用の窓等:

java -Dapple.awt.UIElement=true 

をできるようになります:

通常のアプリケーションのDockアイコンとメニューバーが表示されないようにします。アプリアイコンにアクセスするためのトレイアイコンやその他の代替ユーザーインターフェイスを表示するバックグラウンドアプリケーションにのみ適しています。 java.awt.headless=trueとは異なり、これはウィンドウやダイアログが実際に画面に表示されることを抑制しません。 デフォルト値はfalseです。

関連する問題