#author("2021-03-15T15:26:55+09:00","default:takataka","takataka") #author("2021-03-15T15:30:27+09:00","default:takataka","takataka") *Graphics FAQ [#p7642a0b] //&color(red){''工事中''}; #contents **FAQって何? [#FAQ] Frequently Asked Questions の略です. このページは,龍谷大学理工学部数理情報学科の「[[グラフィックス基礎及び実習>Graphics]]」に関する FAQ をまとめたものです. **Java SE とか ME とかって何? 何が違うの? [#Platform] 対応しているプラットフォームの違いにより,Java には Java SE/Java EE/Java ME の三種類があります.プラットフォームとは何かの説明も含めて教科書第1章に説明があります.授業で扱うのは &color(Blue){Java SE}; です. **Javaのバージョンって? [#version] - 2021-03-15 時点での Java SE の最新バージョンは &color(Blue){Java SE 15}; です(長期サポート版(LTS)の最新は Java SE 11).15 という数字がバージョン番号(大きいほど新しい)です.[[Graphics/Link]] から Java の配布元のページをたどると,現在の最新版の情報を入手できます. - この授業の教科書は &color(Blue){Java SE 8}; に基づいて書かれていますが,より新しいバージョンの Java を使っても問題ありません.セキュリティ等の問題もありますので,自分で Java の環境を用意する場合は,なるべく最新版にしましょう. - 現在の龍大情報実習室のLinux環境は,&color(Blue){Java SE 11}; です. - 次のように javac コマンドを実行することで,現在の環境で動く javac のバージョンを確認できます javac -version **JREとかJDKって何? [#JREvsJDK] 開発元が配布しているJava関連ソフトウェアのうち主なものには,&color(Blue){JRE(Java Runtime Environment)};と&color(Blue){JDK(Java Devellopment Kit)};の二種類があります. 開発元が配布しているJava関連ソフトウェアのうち主なものには,&color(Blue){JRE(Java Runtime Environment)};と&color(Blue){JDK(Java Development Kit)};の二種類があります. Javaのプログラムが「実行」できればよいだけなら前者を,「開発」(プログラミング)をしたいなら後者をインストールする必要があります.おおざっぱかついい加減な説明ですが,java コマンドでプログラムを実行するために必要なものだけ集めたものが JRE で,それにコンパイラ (javac) なども加えたものが JDK って感じです. JREの方は,OSやブラウザと一緒に,知らない間に自分のPCにもインストールされている場合もあります. **JavaFXって何? [#JavaFX] //&color(red){''工事中''}; この授業では,グラフィックスを描くプログラムを作ったり,GUI(Graphical User Interface, マウスを操作してボタンを押したりメニューを選択できるような仕掛け)を備えたプログラムを作ったりします. このようなことをするためには,Java 標準の AWT や Swing というソフトウェアライブラリを使う手もあるのですが,この授業では(および,この授業で利用する教科書では)JavaFX というライブラリを使います. JavaFX は AWT/Swing の後継として開発されたもので,複雑なGUIを備えたソフトウェアの開発がより簡単にできる,タブレットやスマートフォン向けのインタフェイスも備えている,といった特徴があります. Java SE 11 の JDK には標準では JavaFX は含まれていません. **自分のPCで Java プログラミングできるようにするには? [#JavaAtHome] こちらへどぞ [[Graphics/JavaProgramming]] **龍大計算機室のWindowsでJavaを使うには? [#JavaOnRyukokuWin] &color(Red){''工事中''}; //次のようにするとよいでしょう. //+「スタートメニュー」→「プログラム」→「プログラミングソフト」→「JDK 6u23」を実行 //+すると,Javaが使えるように環境設定されたシェル(コマンドプロンプト)が起動する //+その中で javac やら java やら実行すればよい //注意: 普通の方法でJDKをインストールしたWindows環境の場合,上記のようなメニューは存在しません.パスさえ通してあれば,普通のコマンドプロンプトで javac や java が動くはずです. **ソースを書くのに使う文字コードが??? [#code] //&color(red){''工事中''}; ***文字化けするよ/コンパイルエラーになるよ [#v4beed7f] 「&color(Blue){Windows環境で作った日本語入りのJavaのソースファイルをLinux環境でコンパイルしたらエラーになった};」 というのが典型例ですが,日本語入りのソースファイルを異なる環境に持って行くといろいろややこしいことになります. -Linux/macOSの環境およびWindows環境のデフォルト文字コードはそれぞれ[[UTF-8>http://ja.wikipedia.org/wiki/UTF-8]], [[Shift JIS>http://ja.wikipedia.org/wiki/Shift_JIS]]であることが多く,龍大計算機室でもそうなっている.ついでに言うと,改行コードも両者で異なっている -したがって,Linux/macOS環境の javac コマンドはUTF-8のソースを,Windows環境の javac コマンドはShift JISのソースを受け付けるようになっており,異なる文字コードのソースを入力するとコンパイルエラーになることがある -ソースの文字コードには注意しないといけないが,Java仮想マシンは環境に応じて適切な文字コードを使用して出力するので,Javaプログラムの実行時には(あまり)問題ない というわけで,二つの環境間で「ソースファイル」のやりとりが必要な場合は,文字コードに気をつけて,変換してやる必要があります. ちなみに,VSCode等の高機能なエディタは様々な文字コードのファイルを読み書きできます. ***文字コードの変換 [#g53a3bd7] ここでは,計算機室のLinux環境でテキストファイルの文字コードを変換する方法を紹介します. 計算機室のLinux環境には,nkfというソフトウェアがインストールされています. Hoge.java という名前のファイルがあったときに,次のように実行すると,Hoge.java の文字コードをUTF-8(計算機室のLinux環境に対応したもの)に変換し,改行コードもLinux等UNIXで一般的な形式に変換できます(正確に言うと,Hoge.java を変換したファイルを一時的に作って Hoge.java を上書きする). $ nkf -w -Lu --overwrite Hoge.java オプション次第で,変換先の日本語コードにSJISやEUCを指定したりもできます. 詳しくは $ man nkf を参照してください. ** 実習室の環境と自分のPCとの間でプログラムやファイルをやりとりしたい [#fileTransfer] いろんな手がありますが,以下が簡単でしょう - 龍大の Google アカウントで GoogleDrive を使う https://drive.google.com/ - USBフラッシュメモリを使う