Java 1.6

どこで見たか思い出せなかった。インストールからやり直してたら、これを見つけた。

親玉: https://developer.android.com/studio/install?hl=ja

Mac で Android Studio を利用する際に JDK 1.8 を使用していると、安定性が低下することが知られています。これらの問題が解決されるまでは、古いバージョン(JDK 1.6 以前)の JDK をダウンロードすることで安定性を改善することができます。

こいつかぁ・・・ 大元が1.6を要求してるんだったら、もうどうしようもない?

Java 1.6 のruntimeをダウンロードすることはできたけど、SDKが入らなかった。それでもいいのかなぁ・・・ダメでしょ?たぶん。
と思っていたけど、Gradleの同期がうまくいった。解決されたの?

Android Studioのトラブルシューティングの「診断」機能が見事だった。ブーブー言われたメッセージを見ていたら、原因の一つは、ADTをたどるPathに空白があったこと、のようだ。空白のあったMac上のパス名をCamelStyleに変更して、インストールをやり直した。(snakeでも同じだろうけど。)今回はトラブルシューティングのリンクをクリックするたびに、状況がよくなる。最終的に、ビルドまで全部通った。
\^o^/  \^o^/

その代わり、Path名を変えちゃって、コケるツールがどこかに出てきそうな・・・

いいんです。こういう「借金」は、全部未来の自分に押し付けちゃえば!
コケたらコケた時にスクリプトを修正すりゃ、何とかなるでしょ!

出先でも仕事をしたかったので、MacBook AirにもAndroid環境を構築した。(なんせ、東武東上線では、一日2.5〜3時間は、改札の中にいますからねぇ・・・)僕がMacBook Airを手放せない理由の一つ。

もう何度も書いたけど、ってか、何度も話しているけど、総武線快速、八幡宿で電車に乗って、東京駅まで仕事をしたかったから、せっかくグリーン券を買って、座って、Windows PCを立ち上げた途端に、「更新」が始まっちゃって、ついに東京駅まで何もできないまま(教材が仕上がっていないまま)授業に臨んだことが、何回かあった。機嫌が悪いと、千葉駅で電源を入れたのに、操作できるようになった時には船橋駅に近づいていた、とか。錦糸町あたりでハーバーネーションをかけないと、東京駅までにPCをしまえない、とか、もう辟易していた。
ところが、MacBook Airは、Sleepではなくシャットダウンされた状態から立ち上げても、7秒で仕事が始められた。あの時の感激が忘れられなくて、以来、仕事は全部Macに移した。(最近だいぶ重くなったが。持ち主と一緒か。)

9月の半ばから手つかずのままフリーズしていた仕事が一件、ようやっと前に進む。あとは、TDM(時分割多重)のオーバヘッドをギリギリまで小さくして、私自身の分身の術を完成させるだけ!?単価を上げられないから、手数で攻めるしかないもんなぁ。

今年の「初泥沼」も、何とかなった。もう少し先に進めたら、次は、レポートの採点かなぁ。その次は、制御系Python。その次はRailsのWEB。仕事の気分転換に、別の仕事をする、という、理想的な状態!あはは!(意味不明なハイテンション)

ブログも貴重な息抜きです!

Gradle

Android Studioを使うなら、Gradleも、ってことか。

自己レス。

一つコケて、そこから原因を辿っていくと、最後の最後にとんでもない「そもそも、ここからやり直せ」ってのに辿り着いたりする。はいはい、わかりました。頑張ります。ボヤキつつも、自己完結しちゃった。


そもそも、っていうならば、なぜ「文書起こし」の仕事をわざわざお金を出して、発注して下さったのか。現行のシステムをメンテナンスするにしても、更新するにしても、コードの内容が把握できていなければ、出来ないから。だとしたら、目的は「メンテ」とか「システムの更新」とか、そっちでしょうね。だとしたら、新しい環境で再コンパイル出来なければ意味がない。新しい環境に、どんどんと追随させられなければ意味がない。だとしたら、Java 1.6を使えるようにする、なんていう選択肢は有り得ない。だとしたら、1.6を使わざるを得ないパーツそのものを更新して、新しくしなければ意味がない。だとしたら、そこのコードを書き換えればいい。

Gradleを使うのはアリだとして、「そもそも」っていうならば、古いツールを使っているコード部分を、ごっそりと書き直す、というのが「正解」なんだろうな、という結論にたどり着いた。

なんなんでしょ。木を追っかけているうちに、森を見失ってた感。だって、1.6だもんなぁ。こういう時間の無駄遣い、嫌だなぁ・・・もったいない。こっちの自己完結は、たぶん、正解だと信じたい。信じるしかない。

Javaはどこへ行った?

Javaがどこかに行っちゃった???

ジャカルタがあって、JKT48がいるのがジャワ島で、英語だとJavaなのにインドネシア語ではJawaで、動きようがないだろうって、そっちのJavaじゃない!
Suda pergi ke sana!

僕の記憶だと、確かMac OSXの
/System/Library/Frameworks/JavaVM.framework/Versions/
の下に、
1.6とか1.7とかがあって、Currentがここにあって、っていう感じだったのに
AとCurrentしかない?
いや、もしかしたら、/usr/localとか、/usr/libの下だったか?rubyやphpと勘違いしてる?ほら、もう、昔の話はどーでもいいから。今どうなの?ってことでしょ?

Qiitaのこれ
https://qiita.com/qoAop/items/d2c85183863970f93577
あっちこっちにJavaが・・・
/Library/Java/JavaVirtualMachines/の下、確かに入れた覚えのあるJavaVMがあったけど、中身はJava仮想マシンで、コマンドがない、って、名前からして仮想マシンか。当たり前だな。でも、仮想マシンとコマンドは、ワンセットじゃないのか?1.8のコマンドから1.6のVMを叩けるの?

実は、1.8よりさらに古い1.6で動作を試したい、ツールがなんか文句を言ってくるから仕方ない、1.6で付き合ってみたらどうなるか、確認したいんだけども・・・
javaって、こんなにも、コマンドと仮想マシンとが切り離されていたっけか?

ツールが古い?だけど、Android Studioの最新版から派生的に辿って入れたんだよな?
え?俺の勘違い?いや、確かにポップアップが「1.6じゃないから、動作保証しねーぞ」と、最初に言い訳して来たのを見た(気がする)んだが、どこをどう操作した時だったっけか?気に留めずにOKしたから、思い出せない。わからん・・・
この辺、bundlerってないの?
Android Studioは最新でも、APIレベルが古いから、AVD(仮想デバイス)の都合でこうなるの?そっちか?

そういえば、昔は必ずJAVA_HOMEを設定しなければならなかった。
ところが、最近はこの「JAVA_HOMEの設定をしましょう」という説明を見かけない。
ふとみたら、Macでも、Windowsでも、環境変数にJAVA_HOMEがない!なんてこった!いつの間に?
(—>嫌だねぇ、俺、いつの間にかJava原人になっちゃったか?)なくなった経緯を理解してない!Oracleが買収してからか?
と思っていたら、Macの場合コントロールパネルにJavaの項目があるらしい。確かに。
なんだか、景色が変わっているのに気づかなかった自分に、気づいてしまった。

/usr/libexec/java_home -v 1.6
などとコマンドを叩くと、古い環境に切り替えられるらしい。試したんだけれども、VMは残っているのにコマンド群がなくなってるから、リンクされない。
>> 勘違いなので、訂正:切り替えられない。パスが参照できるだけ。いや、リンク先がわかれば、スクリプト書けばいいだけだから、参照できれば切り替えられるってのは間違いじゃないけれども・・・
煮詰まった。again。 >>> 今年の「泥沼始め」ですね。

C言語もそうだけれども、javaなんかももう十分に「枯れて」いる言語だし、なんていうか、例えば、International Computer Language Federation(国際コンピュータ言語連盟)みたいな団体を作って、どこかの会社の利益ってことじゃなくて、業界団体の代表団体の管理下、みたいなところに置いて欲しいな、なんてことをふと思ったりする。あ、GNUやApacheがそうか!

CはGNUのおかげで公共財に近くなってる。C#は、Microsoftのもの、だけれども、gnu-Cは完全に公共の言語資産になっている気がする。どこかの組み込みチップの言語が、最終的にgnu-cに落ちているとホッとする。
あ、そうか、gnu-javaが出来ればいいんだ!誰か作って!と思って検索したら、あるじゃない。GCJか?で、2015年からメンテナンスモード?ってことは、この試みは失敗?
もしかしたら、Oracleは、囲い込みを試みているんじゃなくて、必死でメンテナンスしてくれてる?それだったら、古いバージョンへの切り替えも、rbenvとかpyenvみたいな、簡便な切り替え環境を提供して欲しい。java_homeコマンドは、インストール済みが前提なのに、Mac OSをバージョンアップした後、古いJava環境が探せなくなって、どうにもならない。(と思っているのは、私が勉強不足だから、かも知れないけど。どこをどう、調べたらいいのさ!)

どうでもいいんだが、MySQLがOracleに買収されて、(という言い方は正確じゃなくて、Sun MicroがOracleに買収されて)MySQLはフリー、Oracleは滅茶苦茶に高い、というイメージがどうしてもこびりついている。中小規模のデータベース開発は、なんとなく悲観的な気分が・・・。何も考えずに、PostgreSQLを第一選択にするようになった。僕の認識の間違いかなぁ・・・。もっと外に出て、ユーザ会とかにも参加してみないといかんなぁ、とは思うんだが。

いや、わからんでもないのは、JavaもMySQLも、無料の環境で、僕らはその恩恵をこうむっていた。それなのにSun Microには何らの貢献もしていない。Oracleはライセンス料が滅茶苦茶高い。貢献するも何も、大企業の新人プログラマの数十分の1以下のコード単価で仕事をしてる僕らのようなペーペーは、SunもOracleも、手の出しようがない。申し訳ないけど、無料のオープンソースに頼らざるを得ない。(うちは、安いですよ!ソフトウェアのコード単価が、そもそも大手より一桁安い。スピードと体力と気力だけで勝負してるから。)

いまだに、Javaを基幹に据えたシステム開発、多いもんなぁ。その割には、バージョン管理が遅れまくってる気がする。しばらく、rubyやpythonでコードを書いて、javaに戻ってみたら、この面倒臭さをまた思い出してしまった。Ruby on Railsが掲げるCoC(Convention over Configuration)の有り難さは、Java開発を経験しないとわからない。
Javaも、何とかならんのか。

いっそのこと、GoogleがGoogle-Javaを提供してくれたら、話が早いのに。

と思うと同時に、これまでの経験が役に立たないどころか、むしろ邪魔になる開発環境って、何なんだよ、とも思う。プンプン。

泥沼始め・・・ 気を取り直して、もう一度!
次は、どこから攻めようか。ってか、1.6なんていう言い訳は無視して、1.8で突っ走ろうか。(それで問題ないことを確認する、ってな攻め方もあるなぁ。)

そうそう、このページ書きながら、途中で一服して血圧測ったら、138/76mmHgでした。やや高めとは言え、喫煙直後だから、高血圧の問題は、どうにかなったみたいだ。問題は一つずつ潰せば、いいってか。