#author("2021-03-15T15:30:27+09:00","default:takataka","takataka")
*Graphics FAQ [#p7642a0b]

//&color(red){工事中};
//&color(red){''工事中''};

#contents
**FAQって何? [#FAQ]

Frequently Asked Questions の略です.
このページは,龍谷大学理工学部数理情報学科の「[[グラフィックス基礎・演習>Graphics]]」に関する FAQ をまとめたものです.
このページは,龍谷大学理工学部数理情報学科の「[[グラフィックス基礎及び実習>Graphics]]」に関する FAQ をまとめたものです.

**Java SE とか ME とかって何? 何が違うの? [#Platform]

対応しているプラットフォームの違いにより,Java には Java SE/Java EE/Java ME の三種類があります.プラットフォームとは何かの説明も含めて教科書第1章に説明があります.授業で扱うのは &color(Blue){Java SE}; です.

**Javaのバージョンって? [#version]

2016-04-06 時点での Java SE の最新バージョンは &color(Blue){Java SE 8 Update 77}; です.8  は大きな改訂を表すバージョン番号で,Update の後ろの数字は,その中での細かいバージョンの違いを表します.短縮して Java SE 8u77 のように表すこともあります.[[Graphics/Link]] から Java の配布元のページをたどると,現在の最新版の情報を入手できます.
- 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

この授業の教科書は &color(Blue){Java SE 6}; に基づいて書かれていますが,より新しいバージョンの Java を使っても問題ありません.セキュリティ等の問題もありますので,自分で Java の環境を用意する場合は,なるべく最新版にしましょう.現在の龍大計算機室のLinux環境は,&color(Blue){Java SE 7}; です.


**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 は含まれていません.

**自宅でJavaプログラミングできるようにするには? [#JavaAtHome]

Java は Linux, Mac OS X, Windows など様々なOSで使えます.基本的には [[Graphics/Link]] にリンクした配布元から JDK をダウンロードして設定すればよいのですが,細かい設定が必要なところもあるので,いくつかの OS についてまとめておきます.

***Windows環境の場合 [#JavaOnWindows]
**自分のPCで Java プログラミングできるようにするには? [#JavaAtHome]

JDKをインストールした後の設定等に関して,OSのバージョンその他の違いで細かく違うところがあったりします.参考になる情報はウェブ上にたくさんあると思いますので,自分で調べてみてください.
こちらへどぞ [[Graphics/JavaProgramming]]

数理情報学科の学生は,「&color(Blue){Windows または Mac に VirtualBox という仮想化ソフトをインストールして,その上で Ubuntu を動かして,その上で Java プログラミングする};」ってのがおすすめです.[[UbuntuOnVirtualBox]] にやり方を書いてます.
がんばって Windows 上で Java プログラミングができるようにするよりもむしろそっちの方が楽かも.ついでに C言語プログラミングの環境も手に入ります(しかも龍大計算機室とほとんど同じ環境です)し.
***Linux環境の場合 [#JavaOnLinux]

ディストリビューション毎に違うでしょうが,ソフトウェアパッケージ管理ツールを利用してインストールできるようです.
開発元のサイトからJDKをダウンロードしてインストールするのでもよいかもしれません.
***Mac OS X環境の場合 [#JavaOnMac]

自分で調べるか,takataka に尋ねてみて下さい.[[UbuntuOnVirtualBox]] もどうぞ.


**龍大計算機室のWindowsでJavaを使うには? [#JavaOnRyukokuWin]

&color(Red){工事中.以下は古い情報です};
&color(Red){''工事中''};

次のようにするとよいでしょう.
+「スタートメニュー」→「プログラム」→「プログラミングソフト」→「JDK 6u23」を実行
+すると,Javaが使えるように環境設定されたシェル(コマンドプロンプト)が起動する
+その中で javac やら java やら実行すればよい
//次のようにするとよいでしょう.
//+「スタートメニュー」→「プログラム」→「プログラミングソフト」→「JDK 6u23」を実行
//+すると,Javaが使えるように環境設定されたシェル(コマンドプロンプト)が起動する
//+その中で javac やら java やら実行すればよい

注意: 普通の方法でJDKをインストールしたWindows環境の場合,上記のようなメニューは存在しません.パスさえ通してあれば,普通のコマンドプロンプトで javac や java が動くはずです.
//注意: 普通の方法でJDKをインストールしたWindows環境の場合,上記のようなメニューは存在しません.パスさえ通してあれば,普通のコマンドプロンプトで javac や java が動くはずです.
**ソースを書くのに使う文字コードが??? [#code]

//&color(red){''工事中''};
***文字化けするよ/コンパイルエラーになるよ [#v4beed7f]

「&color(Blue){Windows環境で作った日本語入りのJavaのソースファイルをLinux環境でコンパイルしたらエラーになった};」
というのが典型例ですが,日本語入りのソースファイルを異なる環境に持って行くといろいろややこしいことになります.


-Linux環境,Windows環境のデフォルト文字コードはそれぞれ[[UTF-8>http://ja.wikipedia.org/wiki/UTF-8]], [[Shift JIS>http://ja.wikipedia.org/wiki/Shift_JIS]]であることが多く,龍大計算機室でもそうなっている.ついでに言うと,改行コードも両者で異なっている
-したがって,Linux環境の javac コマンドはUTF-8のソースを,Windows環境の javac コマンドはShift JISのソースを受け付けるようになっており,異なる文字コードのソースを入力するとコンパイルエラーになることがある
-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プログラムの実行時には(あまり)問題ない

というわけで,二つの環境間で「ソースファイル」のやりとりが必要な場合は,文字コードに気をつけて,変換してやる必要があります.

ちなみに,Emacs等の高機能なエディタは様々な文字コードのファイルを読み書きできます.
Windows Vistaのメモ帳は,UTF-8のテキストファイルも文字化けせず開けるようですが,改行コードまでは気にしてくれないようです.
ちなみに,VSCode等の高機能なエディタは様々な文字コードのファイルを読み書きできます.

***文字コードの変換 [#g53a3bd7]

ここでは,計算機室のLinux環境(*1)でテキストファイルの文字コードを変換する方法を紹介します.
ここでは,計算機室のLinux環境でテキストファイルの文字コードを変換する方法を紹介します.

計算機室のLinux環境には,nkfというソフトウェアがインストールされています.
hoge という名前のファイルがあったときに,次のように実行すると,hoge の文字コードをUTF-8(計算機室のLinux環境に対応したもの)に変換したファイル fuga を作成することができます.
 $ nkf -w < hoge > fuga
Windows環境で作成したファイルの場合は,次のようにして改行コードもUNIX形式に変換する方がよいかもしれません.
 $ nkf -w -Lu < hoge > fuga
Hoge.java という名前のファイルがあったときに,次のように実行すると,Hoge.java の文字コードをUTF-8(計算機室のLinux環境に対応したもの)に変換し,改行コードもLinux等UNIXで一般的な形式に変換できます(正確に言うと,Hoge.java を変換したファイルを一時的に作って Hoge.java を上書きする).
 $ nkf  -w  -Lu  --overwrite   Hoge.java
オプション次第で,変換先の日本語コードにSJISやEUCを指定したりもできます.
詳しくは
 $ man nkf
を参照してください.

(*1): 実は計算機室のWindowsでJavaのために用意されたコンソール(「プログラミングソフト」→「JDK 6u23」を実行,で開くもの)は,[[Cygwin>http://ja.wikipedia.org/wiki/Cygwin]]環境なのでここでも nkf が使えます.
**龍大計算機室のLinux環境で画面をキャプチャしたい [#capture]
** 実習室の環境と自分のPCとの間でプログラムやファイルをやりとりしたい [#fileTransfer]

//&color(Red){工事中};
いろんな手がありますが,以下が簡単でしょう
- 龍大の Google アカウントで GoogleDrive を使う https://drive.google.com/
- USBフラッシュメモリを使う

グラフィックスの課題ですてきな絵が描けたから画像として保存したい,というようなときは,次のようにするとよいでしょう.
+ display を実行(これは,ImageMagickという画像処理ツールの中の,画像表示用コマンドです)
 $ display
+ 2つウィンドウが出てくる
+ ファイル一覧ウィンドウの方の "Grab" というボタンを押す
+ シャッター切るまでの待ち時間設定のウィンドウが出るので適当に設定して(0のままでよい) "Grab" を押す
+ マウスカーソルが十字に変わる
+ カーソルをキャプチャしたいウィンドウの中に入れて左クリック(試してないですが,ドラッグして領域を自由に設定することもできるでしょう)
+ 画像の方のウィンドウにキャプチャ結果が表示される
+ そのウィンドウ内にマウスカーソルを入れて,左クリック → メニューウィンドウが現れる
+ "File" → "Save"
+ ファイル名を入力して "Save".例えばファイル名を hoge.png とすると,PNG形式で保存してくれます.
細かく指定したい場合は "Format"



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS