しかし、1945年8月15日に日本がオランダを含む連合国軍に降伏し、念願の独立が反故になることを恐れたスカルノら民族主義者は同月17日にジャカルタのプガンサアン・ティムール通り56番地のスカルノ邸の前でインドネシア独立を宣言し（独立宣言文の日付は皇紀を用いている）、スカルノが大統領に選出された。独立宣言は他民族によるインドネシアの民族および国に対するあらゆる形の植民地支配から独立し、自由になることの声明であった。1945年8月18日、インドネシアは憲法を制定・公布・施行し、その経過規定第2条において、日本軍政期に有効であった法制度は引き続き有効である旨規定された。いいかえると、日本軍の侵攻前のオランダ領東インドの法制度に戻ることはなかった。しかしオランダはこの独立宣言とスカルノの大統領就任を無効とし、独立を目指すスカルノやハッタらの民族主義者やブントモらの軍人と、日本軍の武装解除を行ったイギリス軍、および植民地支配再開を願って戻って来たオランダ軍の間で4年にわたってインドネシア独立戦争が展開された。戦前のオランダによる峻烈な搾取を排除し独立を目指す人々の戦意は高く、刀剣、竹槍、棍棒、毒矢、罠などの武器の他、降伏後に日本軍が去ってオランダやイギリスの管理下に置かれた兵器庫から奪ったり、降伏を潔しとしない日本軍人の一部が横流しした武器・弾薬で武装し、様々の手段で連合軍を苦しめた。なお独立派には、日本軍政下で独立派への軍事教練を行っていた日本軍人が2000人加わり、訓練や教育、宣撫に活躍し、その半数は戦死したものの戦闘に参加した者もいた。この戦争の結果、疲弊消耗の極に達したオランダ軍はようやく再植民地化をあきらめ、1949年12月国連の斡旋でデン・ハーグで行なわれたオランダ-インドネシア円卓会議（通称、ハーグ円卓会議）によりオランダは正式にインドネシア連邦共和国 (Republik Indonesia Serikat) 独立を承認した。
太平洋戦争（大東亜戦争）最中の1942年2月、日本軍の侵攻によってオランダの植民地支配は崩壊した。東インドを占領した日本は、日本陸軍の今村均中将により全域を軍政支配下に置いた。石油をはじめとする天然資源の確保のため、軍政に現地住民の協力をとりつける必要があったこともあり、今村中将による軍政下ではインドネシア人に対する緩和政策を基本とし、大東亜政略指導大綱にもとづき東インドを大日本帝国領土とすることが決定された。そのため、オランダによって捕らえられ、流刑先にあったスカルノやハッタらの民族主義運動の指導者を解放し、またナフダトゥル・ウラマーなどイスラーム系諸団体の宗教指導者らに協力を要請し、彼らの指導力を利用して、物的・人的資源の調達をはかろうとした。一方の民族主義運動の指導者たちも、軍政当局によってあたえられた地位を活用して民衆に語りかけ、その民族意識を鼓舞した。そうした活動によって、スカルノらは民族の指導者としての地位を確立していった。これに併せて日本は、オランダ支配下で迫害されていたイスラム教の存在を認め、イスラム教徒による活動を自由化した他、オランダが行っていたオランダ語による初等教育、高等教育に変わって、インドネシア語と日本語による教育を行った。1942年4月、日本は、それまでオランダ領東インドで設置されていた人種別の複数種類の第一審裁判所のうち地方裁判所(Tihoo Hooin（地方法院）=Landraad)のみを残して一本化し、他は廃止した。欧州人専用の訴訟法も無効となった。また、軍政当局は東インドにおける兵力不足を解消するために、兵補や郷土防衛義勇軍を設立して、現地住民の子弟たちに軍事教練を施した。その訓練は苛烈を極めたが、これらの軍事教育を受けた青年たちが、次の独立戦争でオランダと戦うインドネシアの軍事組織の将校団を形成していくことになった。インパール作戦の失敗によって戦況が悪化すると、日本はインドネシアの独立を認める方針に変更した。それまでは大東亜会議にインドネシア代表を招かないなど帝国領土への編入を前提とした方針をとっていたが、1944年9月にはインドネシア国旗の掲揚と国歌の斉唱を解禁した他、1945年3月には独立準備委員会を発足させた。同委員会は同年8月19日にスカルノとハッタ、ラジマンによって独立宣言するという方針を決定し、軍政当局や日本政府もこれを承認した。
1990年頃、サンのエンジニア、パトリック・ノートンは、自社のプログラミング言語C++とCのアプリケーションプログラミングインタフェース(API)と開発ツールに不満を募らせていた。その頃、NeXTが注目を浴びていたことがきっかけとなって、ノートンはサンでプログラミング環境の開発の仕事をすることになった。NeXTワークステーションと、その環境であるNEXTSTEPでは、主力の言語としてObjective-Cが開発されていた。こうした経緯のなかで、次世代の家電製品のための新しいプログラミング言語を設計し、その処理系を開発することを目的とした「ステルスプロジェクト」と呼ばれるプロジェクトが始まった。ステルスプロジェクトには、始まってすぐにジェームズ・ゴスリンとマイク・シェルダンが参加し、プロジェクトの名称は「グリーンプロジェクト」に変更された。プロジェクトには他のエンジニアたちも参加し、彼らはアメリカ合衆国カリフォルニア州メンローパーク市サンドヒルロードの道沿いにある小さなオフィスで作業を始めた。サンはこの分野が重要な市場になると予測していた。プロジェクトチームでは当初はC++を検討していたが、いくつかの理由から却下された。理由は、当時の彼らの目的が、家電製品すなわち組み込みシステムだったからである。組み込みシステムでは、利用できるコンピュータ資源が少ないという制約がある。彼らはC++ではコンピュータ資源を食いすぎると判断した。またC++は複雑なプログラミング言語であり、C++を使うプログラマは注意していても間違いを犯しがちである。C++にはガベージコレクションの機能が無い。ガベージコレクションが無いということは、プログラマが自分でオブジェクトの寿命（生存期間）を管理しなければならないことを意味する。プログラマが自分でオブジェクトの寿命を管理することは、冒険的で間違いやすい作業である。プロジェクトチームは、いくつかの重要な機能についてC++の移植性が乏しいことも問題であると考えた。このプロジェクトでの重要な機能とは、セキュリティおよび分散コンピューティング、マルチスレッドであり、これらの機能が、プラットフォームに依存せずに使える必要があった。このような事情で、彼らはあらゆる機器に容易に移植できるプラットフォームが必要であると認識するようになった。一方で、サンの別のエンジニア、ビル・ジョイは、ゼロックスのパロアルト研究所でAltoというワークステーション試作機のために開発されたプログラミング言語・MesaとCの良いとこどりをした新しいプログラミング言語を構想していた。ジョイは Further という名前で呼ばれる論文を書き、自社でC++に基づいたオブジェクト指向環境を開発するべきであることを進言した。まずジェームズ・ゴスリンがC++を改変し拡張することを試みた。ゴスリンはこの拡張版C++を、"C++ ++ --"と名付けた。しかしゴスリンは、すぐにこの拡張版C++の開発を中止して、全く新しいプログラミング言語を開発する方針を採ることにした。ゴスリンはこの新しい言語にOakという名前をつけた。この名前の由来は、ゴスリンのオフィスのすぐそばにオークの木が立っていたことによる。