Write once, run anywhere

（WORA）または  (WORE) とは、サン・マイクロシステムズによるJavaのスローガン。Javaのプログラムはオペレーティングシステム (OS) などに依存せず、一度書いてしまえばどんなプラットフォームで実行できる事を意味する。

 概要 

Javaで記述されたソフトウェアは多くのシステムの上で開発・コンパイルでき、同一のバイトコードを得ることができる。そのバイトコードはJava仮想マシン(JVM)を持つ全てのシステムで動作する。Microsoft Windows、Mac OS、Linux、Solaris、FreeBSD、AIX、NetWare、HP-UX、OS/2などで動く。

JVMはチップやデバイスにも組み込まれている。これは、パーソナルコンピュータ (PC) で開発したコードが何らの調整なしに、Java実行環境を持つ携帯電話やルータやメインフレームで動くということである。そこで「一度書いてしまえば、どこでも走る」のである。プラットフォームやオペレーティングシステム (OS) 毎に違う版のプログラムを書く必要がなくなり、また、Javaが提供する抽象化されたレイヤの方が便利であるため、開発者の負担が減る。

 批判 

しかし、WORAは完全なレベルまで実現されたわけではなく、現実には、移植の手間が大きく減ったというレベルにとどまっていた。

: 

これは初期のJavaでは例えばファイルのパーミッション取得など不足している機能が多くネイティブライブラリの呼び出しが必要になることが多かったためである。また当初はデスクトップアプリケーションでの利用が多く、OSのGUIがもつ機能を十分に利用できていなかった。

しかし、Java 7でjava.nio.Filesによってファイルの細かな操作が可能になるなど機能が充実し、また利用が主にサーバサイドになってきたことから、問題になることは少なくなっている。

 関連項目 
Javaコンパイラ
Write once, compile anywhere

Category:Java
Category:プログラミングパラダイム
Category:プログラミング・フォークロア
Category:ソフトウェア工学のフォークロア