Java

【Java】gzipやwgetなどの外部プロセスを実行する方法

article_93_eye_catch

 

Javaで外部プロセスを実行する方法についてご紹介いたします。

例えばgzipコマンドやwget、curlコマンド、nkfコマンド等の外部プロセスを実行する方法になります。

これらの外部プロセスをJavaから利用する際の注意点としましては、実装方法次第でお見合い(デッドロック)状態となってしまう可能性があることです。

外部プロセスの標準出力、標準エラーがバッファサイズを超えてしまう可能性があり、そのような状況になると外部プロセスは標準出力への出力ができず、待ち状態となってしまいます。

また、Javaプログラム上で外部プロセスの終了を待つようにしていると、外部プロセスはバッファが空くのを待っており、Javaプログラム側はプロセス終了を待っているという状態になってしまう可能性があります。

それらの状況を回避することを考慮した実装方法をご紹介いたします。

【Java】Google Drive APIで大きいサイズのファイルをダウンロードする方法

article_90_eye_catch

 

皆さんはGoogle Drive APIを利用したことがありますでしょうか?

最近Google Drive APIを利用する機会があり、その際に提供されているAPIではどうにも解決できない問題に直面しました。

それはサイズの大きなファイルをアップロードすることはできても、ダウンロードすることができないという問題です。

なぜダウンロードできないかというと、Google Driveからファイルをダウンロードする際、対象ファイルは自動的にウィルススキャンされる仕組みとなっているのですが、100MB以上の大きなファイルについてはウィルススキャンの実行に失敗してしまうためです。

色々と検証を重ねた結果、最終的にダウンロードに成功しましたので、備忘録を兼ねてGoogle Driveからサイズの大きなファイルをダウンロードする方法についてご紹介いたします。

【Java】Google Drive APIでGoogle Driveに接続する方法

article_91_eye_catch

 

最近Google Drive APIを利用する機会があり、API利用までの手順がやや面倒でしたので、備忘録を兼ねてご紹介したいと思います。

プログラムのサンプルはJavaですが、基本はGoogleから提供されているサンプルがベースになります。

API利用までの事前準備は他の言語においても共通になりますので、他の言語を利用の方はGoogleで公開されているサンプルソースをもとにプログラム部分だけ差し替えて読んで頂ければ幸いです。