[{"data":1,"prerenderedAt":301},["ShallowReactive",2],{"content-/emudhra-windows-oracle-jdk-removal":3,"all-pages-for-dir":279,"related-/emudhra-windows-oracle-jdk-removal":280,"og-image-/emudhra-windows-oracle-jdk-removal":300},{"id":4,"title":5,"body":6,"category":256,"concepts":257,"description":258,"extension":259,"meta":260,"navigation":261,"ogImage":257,"path":262,"project_name":263,"published":264,"publishedAt":265,"seo":266,"source":267,"stem":268,"tags":269,"todo":257,"unpublished":264,"updatedAt":257,"__hash__":278},"pages/2026-10/2026-10-23/emudhra-windows-oracle-jdk-removal.md","eMudhra 中間CA漏えいの Windows 対応を終えた日：使っていない Oracle JDK を実測で確かめて削除した",{"type":7,"value":8,"toc":247},"minimark",[9,14,24,27,32,40,43,46,63,78,81,85,88,95,105,115,118,135,142,146,149,156,159,163,166,169,172,183,186,189,200,213,216,236],[10,11,13],"h1",{"id":12},"emudhra-中間ca漏えいの-windows-対応を終えた日","eMudhra 中間CA漏えいの Windows 対応を終えた日",[15,16,17,18,23],"p",{},"前日、漏えいした中間CA証明書（eMudhra）のテスト用サイトに、Windows の Python、Java、git がまだつながった。\n経緯は",[19,20,22],"a",{"href":21},"/node-security-emudhra-cert-blog-deploy-resume","前日の記事","に書いた。\ngit と Python の requests はその日のうちに直り、Java と Python の標準ライブラリが残った。",[15,25,26],{},"Oracle JDK を消せば、Java の穴はふさがる。\n問題は、この PC で Java を何かに使っているかどうかだった。",[28,29,31],"h2",{"id":30},"java-を使っているかを実測で調べた","Java を使っているかを実測で調べた",[15,33,34,35,39],{},"引き継ぎプロンプト（",[36,37,38],"code",{},"emudhra-handoff-prompt.txt","）を、Claude Code の新しいセッションに渡した。\n返ってきた最初の一言は「使っているかを実測で調べます」だった。\nリポジトリと過去のセッションログの全文検索を、バックグラウンドで走らせてもらった。\n終わるまで数分かかる見込みで、その時点までの実測では Java を使った形跡はなかった。",[15,41,42],{},"待っている間に、思いついた心当たりを聞いた。\nゲームのマインクラフトで使うのではないか。\nAndroid Studio は、Android のスマホアプリを開発するときに使うのではないか。",[15,44,45],{},"Minecraft については、こういう答えだった。",[47,48,49,53,56],"ul",{},[50,51,52],"li",{},"Java 版は、ランチャーが専用の Java を自分で持っている。PC に入れた JDK は使わない",[50,54,55],{},"統合版（Bedrock）は、そもそも Java を使わない",[50,57,58,59,62],{},"この PC には Minecraft が入っていない（ランチャーもストア版も ",[36,60,61],{},".minecraft"," フォルダもない）",[15,64,65,66,69,70,73,74,77],{},"Android Studio の側も、記録に根拠が残っている。\nJava を要するアプリ（IDE、Android Studio、Gradle、Maven）は入っておらず、",[36,67,68],{},"~/.gradle"," も ",[36,71,72],{},"~/.m2"," もない。\n",[36,75,76],{},"~/.android"," には adb の鍵があったが、adb は Java を使わない。",[15,79,80],{},"全文検索の結果も、同じ方向を指していた。\nリポジトリで引っかかったのは、Python の仮想環境に入っているライブラリのファイル（httpx、debugpy、Google API の定義 JSON）だけだった。\n自分のスクリプトで java を呼んでいる箇所はなかった。\n過去のセッションで java を実行したのは、今回の調査だけだった。",[28,82,84],{"id":83},"必要なときに入れ直せばいいと決めた","「必要なときに入れ直せばいい」と決めた",[15,86,87],{},"ここで削除を決めた。\n消すのは Java 全般ではなく、Oracle の JDK である。\n動かなくなったら、そのときに入れ直せばいい。\n入れ直せば、その時点の新しい版が入る。\nこの理解で合っているかを確かめてから、削除を頼んだ。",[15,89,90,91,94],{},"記録によれば、",[36,92,93],{},"winget upgrade"," での更新は、ダウンロード先が 404 を返して通らなかった。\n削除のほうも、一度では通らなかった。",[96,97,102],"pre",{"className":98,"code":100,"language":101},[99],"language-text","winget uninstall        → 1603（権限不足）で失敗\n管理者権限で msiexec /x → 終了コード 0\n","text",[36,103,100],{"__ignoreMap":104},"",[15,106,107,110,111,114],{},[36,108,109],{},"winget"," での削除が権限不足で落ちたので、管理者権限の ",[36,112,113],{},"msiexec /x"," に切り替えてもらった。\nこちらは終了コード 0 で終わった。",[15,116,117],{},"消えたことは、3か所で確かめてもらった。",[47,119,120,126,132],{},[50,121,122,125],{},[36,123,124],{},"where java"," で見つからない",[50,127,128,131],{},[36,129,130],{},"C:\\Program Files\\Java"," が無くなった",[50,133,134],{},"システムの PATH に Java の項目が残っていない",[15,136,137,138,141],{},"システムの ",[36,139,140],{},"JAVA_HOME"," も消してもらった。\n存在しない jdk-16.0.2 を指したまま残っていた変数である。\nこれで、Oracle JDK 21.0.8 は Windows から消えた。",[28,143,145],{"id":144},"pip-と-uv-を試してwindows-でやることがなくなった","pip と uv を試して、Windows でやることがなくなった",[15,147,148],{},"「Windows であとやることは何がありますか」と聞いた。\n今すぐ打てる手として残っていたのは、記録の表で「未テスト」のままだった pip と uv の確認だけだった。\n口で答えるより先に、実際に試してもらった。",[15,150,151,152,155],{},"pip も uv も、2つのテスト用サイトへの接続を拒否した。\n記録の表では pip は 26.2.2、uv は 0.13.5 で、拒否の出方はそれぞれ「証明書が失効しています」と ",[36,153,154],{},"CertDistrusted"," だった。",[15,157,158],{},"これで、Windows で今やれることは残っていない、という答えになった。\nPython の標準ライブラリ（urllib）だけは、AAA 経由のテスト用サイトにまだつながる。\nただ、これは CPython 側の修正待ちで、issue #160040 で提案されている段階にある。\nWindows の側で打てる手はない。",[28,160,162],{"id":161},"記録は-eurekapu-nuxt4-の1ファイルだけにあった","記録は eurekapu-nuxt4 の1ファイルだけにあった",[15,164,165],{},"何をやったかも含めて、記録を残してほしいと頼んだ。\nあわせて、記録や計画書をどこに置いていたかを聞いた。\nmdx-playground でしたっけ、と。",[15,167,168],{},"記録には「Windows は完了」と書き足してもらった。\nWindows で変えた設定の一覧も、元に戻す方法つきで足してもらった。\nこれで、あとで不具合が出たときにどの変更を疑えばいいかがわかる。",[15,170,171],{},"置き場所の答えは、予想と違った。\n記録は mdx-playground ではなく、eurekapu-nuxt4 の1ファイルだけにあった。\n計画書は別に作っておらず、この1本にチェックリストの形で全部書いてあった。\nしかも、eurekapu-nuxt4 では git の管理外だった。",[15,173,174,175,178,179,182],{},"これは mdx-playground に移してコミットしたほうがいい、と判断した。\n移してコミットしてもらった（",[36,176,177],{},"6f6189bc","）。\nコミット時の Codex レビューも、重大な指摘なしで通った。\n「y」と返して push してもらうと、範囲は ",[36,180,181],{},"3bc7861a..6f6189bc"," だった。\n前からあった3つのコミットも一緒に出ていき、mdx-playground は origin と同じ状態になった。\nMac でも pull すれば、この記録を読める。",[28,184,185],{"id":185},"全体計画への書き戻し",[15,187,188],{},"別のセッションでは、mdx-playground の全体計画に進捗を書き戻してもらった。\n「進捗更新して、計画書のドキュメントに。今ってどこまで進んでるんでしたっけ？」と頼んだ回である。",[15,190,191,192,195,196,199],{},"全体計画には、前日の時点で D5（旧デプロイの Access による閲覧制限）の完了が書き戻されていた（",[36,193,194],{},"3bc7861a","）。\n今回はそこに、OPS-01 の ask が確認を出さない件を足してもらった。\n全体計画と issue の2ファイルに記録して、コミットは ",[36,197,198],{},"c4319a52"," になった。\nCodex レビューの指摘はなかった。",[15,201,202,203,206,207,209,210,212],{},"このセッションでは push まではしなかった。\nセッションを切り替えたかったので、次のセッションへのプロンプトをダウンロードフォルダにテキストファイル（",[36,204,205],{},"mdx-handoff-2026-10-23.txt","）で書き出してもらった。\npush していなかった ",[36,208,198],{}," は、上の eMudhra の記録と一緒に ",[36,211,181],{}," の範囲で origin へ出ていった。",[28,214,215],{"id":215},"学び",[47,217,218,221,233],{},[50,219,220],{},"「使っていないはず」は、リポジトリと過去のセッションログの全文検索で裏が取れる。思いついた心当たり（Minecraft、Android Studio）も、一つずつ根拠で消せた",[50,222,223,226,227,229,230,232],{},[36,224,225],{},"winget uninstall"," が 1603 で落ちても、管理者権限の ",[36,228,113],{}," で消せた。消えたかは ",[36,231,124],{},"、インストール先のフォルダ、システムの PATH の3か所で見た",[50,234,235],{},"git 管理外に1本だけあった記録は、mdx-playground に移して push したことで、Mac でも pull すれば読めるようになった",[15,237,238,239,242,243,246],{},"Oracle JDK 21.0.8 は消え、pip と uv はテスト用サイトを拒否した。\nWindows で打てる手は、もう残っていない。\n残っているのは CPython の修正と、Mac の画面で自分が ",[36,240,241],{},"SSL_CERT_FILE"," と git の ",[36,244,245],{},"http.sslCAInfo"," を足す2行である。",{"title":104,"searchDepth":248,"depth":248,"links":249},2,[250,251,252,253,254,255],{"id":30,"depth":248,"text":31},{"id":83,"depth":248,"text":84},{"id":144,"depth":248,"text":145},{"id":161,"depth":248,"text":162},{"id":185,"depth":248,"text":185},{"id":215,"depth":248,"text":215},"dev",null,"eMudhra の中間CA漏えいで、Windows に残っていた Oracle JDK 21.0.8 を使っているかリポジトリと過去ログの全文検索で確かめ、削除した。winget は権限不足の 1603 で失敗し、管理者権限の msiexec で消えた。pip と uv も拒否を確認し、記録は mdx-playground へ移した。Mac はまだ待ちの状態にある。","md",{},true,"/emudhra-windows-oracle-jdk-removal","mdx-playground",false,"2026-10-23T00:00:00.000Z",{"title":5,"description":258},"make-diary","2026-10/2026-10-23/emudhra-windows-oracle-jdk-removal",[270,271,272,273,274,275,276,277],"セキュリティ","証明書","eMudhra","Java","Oracle JDK","Windows","pip","uv","K_3UqPH5mVK4B2j9gFYa8We9FL8W8TuluZu4DqnJCb4",[],[281,284,288,292,296],{"title":282,"path":21,"publishedAt":283},"Node.js 10月セキュリティ更新と漏えいした中間CA証明書（eMudhra）に2台のPCで対応し、止めていたブログのデプロイを再開した日","2026-10-22T00:00:00.000Z",{"title":285,"path":286,"publishedAt":287},"消えたファイルの原因を2日後に物証で特定した記録（Claude Code の再帰削除事故）","/recursive-delete-incident-postmortem","2026-07-31T00:00:00.000Z",{"title":289,"path":290,"publishedAt":291},"テキストファイルにパスワードをかける前に — 1Passwordのセキュアノートと保管庫","/1password-notes-and-vaults","2026-07-25T00:00:00.000Z",{"title":293,"path":294,"publishedAt":295},"Claude Code 安全な自律実行環境 構築ガイド","/claude-code-safe-autonomous-setup","2026-03-20T00:00:00.000Z",{"title":297,"path":298,"publishedAt":299},"達人Cube自動化の仮説 - Windows UI Automation APIを使ったアプローチ","/tatsujin-cube-automation","2026-01-08T00:00:00.000Z","https://log.eurekapu.com/og/blog/emudhra-windows-oracle-jdk-removal.png?v=2026-10-23T00%3A00%3A00.000Z&title=eMudhra%20%E4%B8%AD%E9%96%93CA%E6%BC%8F%E3%81%88%E3%81%84%E3%81%AE%20Windows%20%E5%AF%BE%E5%BF%9C%E3%82%92%E7%B5%82%E3%81%88%E3%81%9F%E6%97%A5%EF%BC%9A%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%84%E3%81%AA%E3%81%84%20Oracle%20JDK%20%E3%82%92%E5%AE%9F%E6%B8%AC%E3%81%A7%E7%A2%BA%E3%81%8B%E3%82%81%E3%81%A6%E5%89%8A%E9%99%A4%E3%81%97%E3%81%9F&author=Kei%20Komatsu&sig=280b6e1081bf5113",1792796521549]