*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] 2016-04-06 時点での Java SE の最新バージョンは &color(Blue){Java SE 8 Update 77}; です.8 は大きな改訂を表すバージョン番号で,Update の後ろの数字は,その中での細かいバージョンの違いを表します.短縮して Java SE 8u77 のように表すこともあります.[[Graphics/Link]] から Java の配布元のページをたどると,現在の最新版の情報を入手できます. この授業の教科書は &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のプログラムが「実行」できればよいだけなら前者を,「開発」(プログラミング)をしたいなら後者をインストールする必要があります.おおざっぱかついい加減な説明ですが,java コマンドでプログラムを実行するために必要なものだけ集めたものが JRE で,それにコンパイラ (javac) なども加えたものが JDK って感じです. JREの方は,OSやブラウザと一緒に,知らない間に自分のPCにもインストールされている場合もあります. **自宅でJavaプログラミングできるようにするには? [#JavaAtHome] Java は Linux, Mac OS X, Windows など様々なOSで使えます.基本的には [[Graphics/Link]] にリンクした配布元から JDK をダウンロードして設定すればよいのですが,細かい設定が必要なところもあるので,いくつかの OS についてまとめておきます. ***Windows環境の場合 [#JavaOnWindows] JDKをインストールした後の設定等に関して,OSのバージョンその他の違いで細かく違うところがあったりします.参考になる情報はウェブ上にたくさんあると思いますので,自分で調べてみてください. 数理情報学科の学生は,「&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){工事中.以下は古い情報です}; 次のようにするとよいでしょう. +「スタートメニュー」→「プログラム」→「プログラミングソフト」→「JDK 6u23」を実行 +すると,Javaが使えるように環境設定されたシェル(コマンドプロンプト)が起動する +その中で javac やら java やら実行すればよい 注意: 普通の方法でJDKをインストールしたWindows環境の場合,上記のようなメニューは存在しません.パスさえ通してあれば,普通のコマンドプロンプトで javac や java が動くはずです. **ソースを書くのに使う文字コードが??? [#code] ***文字化けするよ/コンパイルエラーになるよ [#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のソースを受け付けるようになっており,異なる文字コードのソースを入力するとコンパイルエラーになることがある -ソースの文字コードには注意しないといけないが,Java仮想マシンは環境に応じて適切な文字コードを使用して出力するので,Javaプログラムの実行時には(あまり)問題ない というわけで,二つの環境間で「ソースファイル」のやりとりが必要な場合は,文字コードに気をつけて,変換してやる必要があります. ちなみに,Emacs等の高機能なエディタは様々な文字コードのファイルを読み書きできます. Windows Vistaのメモ帳は,UTF-8のテキストファイルも文字化けせず開けるようですが,改行コードまでは気にしてくれないようです. ***文字コードの変換 [#g53a3bd7] ここでは,計算機室のLinux環境(*1)でテキストファイルの文字コードを変換する方法を紹介します. 計算機室のLinux環境には,nkfというソフトウェアがインストールされています. hoge という名前のファイルがあったときに,次のように実行すると,hoge の文字コードをUTF-8(計算機室のLinux環境に対応したもの)に変換したファイル fuga を作成することができます. $ nkf -w < hoge > fuga Windows環境で作成したファイルの場合は,次のようにして改行コードもUNIX形式に変換する方がよいかもしれません. $ nkf -w -Lu < hoge > fuga オプション次第で,変換先の日本語コードにSJISやEUCを指定したりもできます. 詳しくは $ man nkf を参照してください. (*1): 実は計算機室のWindowsでJavaのために用意されたコンソール(「プログラミングソフト」→「JDK 6u23」を実行,で開くもの)は,[[Cygwin>http://ja.wikipedia.org/wiki/Cygwin]]環境なのでここでも nkf が使えます. **龍大計算機室のLinux環境で画面をキャプチャしたい [#capture] //&color(Red){工事中}; グラフィックスの課題ですてきな絵が描けたから画像として保存したい,というようなときは,次のようにするとよいでしょう. + display を実行(これは,ImageMagickという画像処理ツールの中の,画像表示用コマンドです) $ display + 2つウィンドウが出てくる + ファイル一覧ウィンドウの方の "Grab" というボタンを押す + シャッター切るまでの待ち時間設定のウィンドウが出るので適当に設定して(0のままでよい) "Grab" を押す + マウスカーソルが十字に変わる + カーソルをキャプチャしたいウィンドウの中に入れて左クリック(試してないですが,ドラッグして領域を自由に設定することもできるでしょう) + 画像の方のウィンドウにキャプチャ結果が表示される + そのウィンドウ内にマウスカーソルを入れて,左クリック → メニューウィンドウが現れる + "File" → "Save" + ファイル名を入力して "Save".例えばファイル名を hoge.png とすると,PNG形式で保存してくれます. 細かく指定したい場合は "Format"