MySQLの起動ができなくなった時と文字化けが起こったときすること
ターミナルで起動できないとき
-rw-r----- 1 _mysql admin(ここの権限を変える(これは変えた後のやつ) 71283 6 6 20:03 マシン名.local.err
sudo chown -R 名前:admin /usr/local/var/mysql/マシン名.local.err
ググったり、何してもわからなかったらここを見る
ここにはエラーのログがかいてある
ここに書いてあるエラー内容をみて調べる
sudo vim /usr/local/var/mysql/マシン名.local.err
文字化けについて
参考にした記事
mysqldにつては「default-character-set=utf8」から「character-set-server=utf8」に変更されたらしいので注意が必要 *http://qiita.com/WizowozY/items/5d7224be92aa8364a42a から引用
環境設定やり直しを振り返る
つい最近EclipseMarsの設定をしたのにTomcatとの関係がうまくいかなくて今日すべてやり直しました。
だからこの前書いた記事はボツだね。
あ、でも自分の役には立ってるのだけど。今回も見直したし。
Eclipseの環境設定欄のserverランタイム設定するとこがでなくなったり
コマンドプロンプトからだとTomcatが起動できるのにEclipseからだとできなかったり
わけがわからなくなったから、もうEclipse新しいのダウンロードしちゃおうってなって
どうせならMac版のpleiadesAllinoneがでたみたいだからそれを使って
再び設定を試みた。
Allinone版だと日本語にする作業も省けるし
Tomcatも入ってるぽい(ぽいんだけど環境設定のとこにTomcatの欄はなくて、結局serverランタイムでは、この前ダウンロードして/Library/Tomcatに置いておいた8.0.44を使って設定した)
ランタイムの設定は前うまくいかなくてつまずいたとこだったから、とりあえず少し進んだのでした。
でもなんかTomうまく動いてくれない。
起動はしてくれる・・。
相談してみたら、この記事を読みながら設定してくださった。
プロジェクト作るとこからなんか違うことしちゃってたみたいで
新しいプロジェクトをこれにそって作ったらうまく動いてくれた。
ここ最近ずっと環境構築でつまずいていたから少し進んで本当によかった〜
自分で調べるのも大事だけど、何時間もそこでつまずくようならやり方を変えたほうがいいよと教えてもらった。
例えば今回だったら、一時間調べても解決できなかったらmarsでずっと頑張るんじゃなくて、一からインストールしなおすとかバージョンを変えてみるとか。
仕事をするようになったり、できるようになってきても、理由がわからんことでつまずくことはあるらしくて(時間がたつとわかることもある)、そういうときは抜け出すのにすごく苦しむって。
今回みたいにバージョン変えられたらいいけど、それできないこともたくさんあるだろうしね、大変。
Eclipse苦手になりそうだったけど(最初から好きではない)コマンド操作も結構使えたし今回は良い勉強になったかな!
まだ他の章でも環境設定ありそうだからまたつまずくだろうけどがんばろ〜。
独習Javaサーバサイド編第2版 第5章まとめ
・JSTL
アクションタグ はJSPページからプログラム的な要素のほとんどを取り除き、ソースコードを簡略化する
アクションタグと式を組み合わせることでJavaに精通していない人でもJSPページを記述できるようになる
アクションタグを駆使したコーディングを行う場合、JSTLの導入が必要になる
自分で個別に用意したタグのことを カスタムタグ という
カスタムタグをライブラリ形式でまとめたものを タグライブラリ という
JSTLは特に標準的なカスタムタグを集めたもの
JSTLはJava標準化組織であるJCPでJSRとして承認されたもので、近年はスクリプティング要素主体のJSPページ開発から、JSTLを使用した開発に主流がうつっている
・変数の出力をJSTLで表現する
<%@ taglib prefix="カスタムタグの接頭辞" uri="タグライブラリ識別のURI" %>
JSPページで使用するタグライブラリを有効化する
・式言語(EL式)
指定された式の値をより簡単に出力できる
${任意の式}
指定された式の値を出力する
特徴
・与えらえた式を評価し出力することがすべて
・データ型の制約が緩い
・あいまいな式の記述が可能
・Javaの知識がなくても記述できる
・Coreタグライブラリ
変数の設定/出力から条件分岐、繰り返し処理など、Javaの基本的な制御構文を代替するライブラリ
・スコープ変数を設定する(ある決められた範囲で有効な変数のこと)
・ページスコープ
・リクエストスコープ
・セッションスコープ
・アプリケーションスコープ
などがある
値はvalue属性または要素配下のテキストとして指定できる
value属性と要素本体とはいずれか片方しか指定できない
・変数の値を出力する
・単純分岐を実装する
・多岐分岐を実装する
・繰り返し処理を行う
・Mapの内容を列挙する
・ステータス変数を利用する
・Databaseタグライブラリ
データベースへのデータ登録/更新/検索など基本的なデータベース連携の手段を提供する
java.sqlパッケージに相当する機能を提供するライブラリ
・Databaseタグライブラリでデータベースを検索する
・Databaseタグライブラリでデータを登録する
・i18nタグライブラリ
i18nタグライブラリは、日付や数値、メッセージの整形などをロケール(地域情報)に応じて制御する手段を提供する
SimpleDateFormatやDecimalFormat,MessageFormatクラス,Localクラスを代替するライブラリ
・数値データの加工
・日付データの加工
・文字列を数値/日付データに変換
・ロケール情報を設定
・国際化対応ページを作成する
・Functionタグライブラリ
文字列を加工するための機能を提供する
Stringクラスを代替する式言語ベースのライブラリ
複数の機能を適用したい場合には複数のタグ(関数)を入れ子に記述することもできる
独習Javaサーバサイド編第2版 第4章まとめ
データベース
後から検索・分析することを目的に、体系的に蓄積した情報群のこと
データベースサーバ
データベースに情報を確実に矛盾なく蓄積、更新し、必要な情報を大量のデータの中から高速に取り出すための手段を提供するソフトウェア
データベースの種類
・カード型データベース
一つの情報を一枚のカードとして扱う
・ネットワーク型データベース
関連するデータ同士が網状に関連付けられる
・リレーショナルデータベース
現在の主流
関連する一連のデータをテーブルに格納する
mysqlクライアント
MySQLにアクセスするにはMySQLに標準で付属しているコマンドラインツールであるmysqlクライアントを利用する
JDBC
データベースごとの仕様差を吸収し、Javaアプリケーションがデータベースに対してなんらかのアクセスを試みる際に一元的なインターフェースを提供するもの
コアはJavaSEのjava.sqlパッケージで提供されている
実際に各DBへの接続や操作を担うのは、個々のJDBCドライバである
DBによって別個に提供されているので必要に応じて適切なドライバをインストールする必要がある
データベース接続
JSPアプリケーションからDBを操作するには、DBに対して接続を確立しなければならない
接続をプール(保管)しておくために コネクションプーリング という仕組みを利用する
・いちいち接続を確立する必要がなくパフォーマンスがよい
・ユーザー数の増減に比較的強い
コネクションプーリングを管理する一連の手続きを規定するのが データソース の役割
設定はcontext.xmlに対して行う。アプリケーションルート配下の/META-
INFフォルダに保存する(要コンテナ再起動)
データソースの情報を定義するのは
データソースURL
データベース接続のための基本情報を表す
jdbc:subprotocol:subname
subprotocolにはJDBCドライバを識別するための文字列を指定する
データベース接続の基本
登録したデータソースを取得するにはInitialContextクラスのlookupメソッドを使用する
lookupメソッドの引数にはjava:comp/env/データソース名の形式で使用したいデータソースを指定する必要がある
戻り値はObjectクラスなので必ずDataSourceオブジェクトへの型キャストを行う必要が有る
データベース切断時注意
原則としてcloseメソッドはfinallyブロックで記述すること
SQLクエリの発行
DBに発行する一連の命令を管理するのはPreparedStatementオブジェクトの役割でConnectionオブジェクトdbからprepareStatementメソッドを呼び出すことで取得する
PreparedStatement prepareStatement(String sql) throws SQLException
sql:発行するsql命令
指定されたSQL命令を実行するためのPreparedStatementオブジェクトを取得する
SQLの命令には?の形式でプレースホルダを含めることが可能
void setXxxxx(int i,T value) throws SQLException
i:パラメータの番号(1スタート)
value:値(Tはデータ型がメソッドに応じて変動する意味)
プレースホルダ?に対して指定された値をセットする
Xxxxxの部分はBoolean,Byte,Date,Double,Float,Int,Long,Short,String,Timeなど
結果セット取得
SQLのSELECT命令によって、一つまたは複数のテーブルから取り出されたレコード群を保持するためにメモリ上に用意された仮想テーブルのこと
結果セットを読み込む場合、レコード単位で読み込む必要がある
現在読み込み可能なレコードを表す内部的な目印のことを レコードポインタ といい、それが示す現在行を カレントレコード という
結果セットから個々の行を取り出すことを フェッチする という
boolean next() throws SQLException
レコードポインタを次のレコードに移動する
ポインタの移動に成功した場合はtrueを、そうでないならfalseを返す
T getXxxxx(int i)
T getXxxxx(String name)
T:Boolean,Byte,Date,Double,Float,Int,Long,Short,String,Timeなど
i:インデックス番号
name:フィールド名
カレントコードから指定されたフィールドの値を取得する
トランザクション処理
分けることのできない複数の処理をグループ化したもの
処理を元に戻すことを ロールバック といい、トランザクションに属するすべての処理をなかったことにする
自動コミット はSQL命令を一つ発行するたびトランザクションを自動的に確定する機能
メタデータまたはメタ情報
データの構成を表すためのデータのこと
ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern,
String[] types) throws SQLException
catalog:データベース名
schemaPattern:スキーマ名
tableNamePattern:テーブル名
types:テーブルの種類
指定されたテーブルのメタ情報を取得する
テーブルの種類は文字列配列で指定可能
ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException
catalog:データベース名
schemaPattern:スキーマ名
tableNamePattern:テーブル名
columnNamePattern:フィールド名
指定されたテーブルに含まれるフィールドのメタ情報を取得する
ResultSetMataDate getMetaData() throws SQLException
結果セットの構成情報をResultSetMetaDataオブジェクトとして返す
独習Javaサーバサイド編第2版 第3章まとめ
リクエスト情報
クライアントからサーバに送信される情報の総称
HTTP通信の確認
HTTP通信の構成
・HTTPメソッド:サーバに対する直接の要求と取得するパス
・リクエストヘッダ:リクエストの構成情報、クライアント情報など
・リクエスト本体:フォームから送信されたデータ
・HTTPステータス:サーバでの処理結果を表すコードとメッセージ
・レスポンスヘッダ:コンテンツの構成情報、サーバ情報など
・レスポンス本体:コンテンツ本体
HTTPメソッド
クライアントからサーバに対して発行する直接の命令
メソッド名、パス、プロトコル情報から構成される
GETは指定されたコンテンツを取得しなさいという命令
HTTPステータス
サーバでの処理結果を表す
クライアントの処理方法や次のアクションを決める情報でもある
200 OK であれば、サーバでの処理が正しく終了し応答が返されたことを表す
ポストデータ
独習Javaサーバサイド編第2版 第2章まとめ
/WEB-INFと/META-INF
JSP&サーブレットで特別な意味を持つフォルダ
HTTP経由でアクセスすることができない
エラーが発生したときは
・スペリングに誤りがないか、大文字小文字は区別されているか(<%~%>や<%@~%>で囲まれた中身は要注意)
・日本語以外の部分はすべて半角文字で記述しているか
・ファイルの保存形式は適切か
・ファイル名や保存先は間違っていないか
拡張子の基本
Tomcatは拡張子が.jspであるファイルが要求されたタイミングでJSPの実行エンジンを起動する
ファイル名そのものはスクリプトの内容が類推しやすく、シンプルに命名する
ファイル名に含んで良いのはシングルバイト文字(英数字やハイフン、アンダースコアなど)だけ
原則としてマルチバイト文字(日本語)を含めるべきではない
JSPページの構造
HTMLをベースに、さまざまな出力ルール(プログラム)を埋め込むことができる HTML埋め込み型 の言語である
JSPページで使える主な要素
・ディレクティブ:ページ単位の処理方法を指定
<%@~%>
・宣言部:変数や定数、ユーザー定義メソッドを宣言
<%!~%>
・スクリプトレット:ページの処理方法を記述
<%~%>
・式(Expression):指定された式を出力
<%=~%>
・アクションタグ:定型的な処理をタグの形式で記述
<jsp:~>
・コメント:処理に際しては無視される備考を記述
<%--~--%>
宣言部、スクリプトレット、式を総称して スクリプティングの要素 という
ここに書いた以外の箇所を HTMLテンプレート(固定テンプレート) という( < html> < /html> とか)
コードが正しいのにちゃんと表示されないときは
JSP&サーブレットコンテナはHTMLテンプレート部分を単なる文字列として解析する
HTMLテンプレートの部分が間違っていてもJSPとしてはエラーにならない
サーバサイド(コンテナ)で解析されるのかクライアントサイド(ブラウザ)で解析されるものなのかきちんと区別すること
ブラウザからソースの表示を確認するとJSPによって作成されたHTMLだけを確認できる
文字コードの作成
コンピュータの世界では文字の情報をコードとして表現する
それぞれの文字に割り当てられたコードを 文字コード 、実際の文字と文字コードの対応関係のことを 文字エンコーディング という
サーバからクライアントにデータを送信するとき、サーバ側で文字列をあらかじめ決められた文字コードに基づきエンコード(符号化)し、クライアント側でデコード(復号化)するという処理が行われている
文字化けなどを起こさないよう、ページをクライアントに送信するにあたって文字コードの情報も通知する必要がある
ディレクティブ(指令)
JSPページの処理方式をコンテナに伝えるための仕組み
コンテナがページを解析/処理するための情報を設定できる
多くの場合ページ全体にかかわる宣言を行うので先頭に記述するのが好ましい
基本構文
<%@ ディレクティブ名 属性名1="属性値1" 属性名2="属性値2"...%>
属性値は数値でも文字列でも必ずダブルクォートで囲む
ディレクティブ名、属性名、属性の値が文字列である場合属性値も、大文字小文字が区別される
JSPで利用可能な主なディレクティブ
・@page:ページの基本的な処理方法を決める
・@include:外部ファイルをインクルードする
・@taglib:ページ内で使用するタグライブラリを宣言する
・@attribute:タグファイルで使える属性を宣言する(タグファイルでのみ使用可)
・@tag:タグファイルの基本情報を定義する(タグファイルでのみ使用可)
・@variable:タグファイルで使える変数を宣言する(タグファイル内でのみ使用可)
ページの処理方法を決める
@pageディレクティブは同じページの中で複数記述しても良いが同じ属性を2回以上指定することはできない(例外あり)
@pageディレクティブの主な属性
・contentType:ページのコンテンツタイプ
デフォルト値:text/html
デフォルト値:contentTypeの属性の値
・buffer:出力バッファのサイズ(単位はキロバイト)
デフォルト値:8
・autoFlush:バッファサイズを超えた場合に自動出力を行うか
デフォルト値:true
・import:インポートするパッケージ/クラス(複数指定の場合はカンマ区切り)
デフォルト値:java.lang.*,javax.servlet.*.javax.
servlet.jsp.*,javax.servlet.http.*
・errorPage:例外発生時に表示するエラーページのパス
デフォルト値: -
・isErroePage:現在のページがエラーページであるかどうか
デフォルト値:false
・isELIgnored:式言語を無視するか
デフォルト値:false
・session:セッション機能を使用するか
デフォルト値:true
・info:ページに関するメモ情報
デフォルト値: -
・language:使用している言語
デフォルト値:java(固定)
コンテンツタイプを宣言する
コンテンツタイプとはインターネット経由でやり取りされるデータの種類を表す情報のことで@oageディレクティブのcontentType属性で宣言する
MINE(Multipurpose Internet Maik Extension)タイプとも
ContentType属性は以下の形式で表せる
コンテンツタイプ;charset=文字コード
主なコンテンツタイプの種類
・application/octet-stream:バイナリデータ
拡張子: -
・application/pdf:Acrobat文書
拡張子: .pdf
・image/gif:GIFイメージ
拡張子: .gif
拡張子: .jpeg .jpg
・text/css
拡張子: .css
拡張子: .xml
拡張子: .mpeg .mpg
出力文字コードとページ文字コード
pageEncoding属性は.jspファイルを記述した文字コードを表す
.jspファイルの文字コードと実材に出力する文字コードが等しい場合には省略可
バッファ処理を有効にする
バッファ(Buffer)とはJSPページが処理を行った場合にその処理結果を一時的に蓄積するメモリ上の倉庫のようなもの
処理結果をバッファに蓄積することを バッファリング という
ある程度データがまとまったところでまとめてデータを運べるのでサーバ/クライアント間のやり取りの回数が抑えられ結果的に処理効率を高められる
ただし処理に時間がかかるページでは一定の処理が終わるまでサーバからデータが送信されないのでユーザの体感速度としてはむしろよくないこともある
バッファとして確保するサイズを調整し、処理速度と体感速度を最適化するべき
JSPはデフォルトで出力が指定されたバッファサイズを超えたところでそれまでの内容をいったん自動出力する
値にnoneを指定するとデータはバッファに蓄積されない
クラスライブラリをインポートする
JSPではJavaにあらかじめ用意されている、またはサードベンダが提供する(自作も含む)クラスライブラリを自由に使える
import属性はJSPであらかじめどのクラスライブラリを使うかを指定しておくためのもの
@pageディレクティブの中で唯一、何度でも指定できる属性である
値はパッケージ単位/クラス単位どちらも可
アクションタグ
JSPページの中で実現される処理の中でも特に典型的な処理をJavaのコードを記述することなくHTMLにもよく似たタグの形式で記述できるようにした仕組み
Javaを知らなくてもページを記述できるのでプログラマとデザイナとが分業しやすい
アクションタグの基本的な用法
jso:includeタグはpage属性で指定されたファイルを現在のページの指定位置に取り込むためのアクションタグ
<jsp:include page ="includeするファイル" flush ="includeする前に強制的に出力を行うか" />
指定された外部ファイルを現在のページにincludeする
アクションタグは厳密にはXML構文に則した書式で記述する
閉じタグは省略できない
属性値は必ずダブルクォートでくくる
インクルードファイルではpageEncoding属性が必須
インクルードファイルを記述する場合 pageディレクティブのpageEncoding属性が必須 である
インクルードファイルを含むページでは
・親ページの文字コードはcontentType属性で宣言
・子ページの文字コードはpageEncoding属性で宣言
スクリプティング要素
スクリプティング要素を使うことでJSPページの中にJavaのプログラムを埋め込むことができる
このような方式をページインライン方式という
(スクリプティング要素は本格的なコーディング向きではない)
スクリプトレット
<% Javaのコード %>
<%~%>の中のコードをJavaプログラムとして解釈、実行する
一つのスクリプトレットは1つ以上の命令文から構成され、1つの命令は必ずセミコロンで終わる
ブロックの中では日本語文字列を出力する場合を除いてシングルバイト文字しか使用できない
「out.println」のoutは暗黙オブジェクトの一種でクライアントへの出力を行うための一連の機能を提供する
暗黙オブジェクトとはスクリプトレットや式の中で特別な前準備を行うことなく利用できるJSPページ固有のオブジェクト
void print(T str) throws IOException
void println(T str) throws IOException
str:出力する値(Tは任意のデータ型を指定可能であることを表す)
指定された文字列をクライアントに出力する
文字列の末尾に改行を付与したい場合printlnメソッドを使用する
暗黙オブジェクト
JSPで使える主な暗黙オブジェクト
・application:コンテナに関する情報やユーザ間で共有可能な情報を管理
・config:サーブレット初期化パラメータにアクセスする手段を提供
・exception:ページ内で発生した例外情報を管理(@pageディレクティブのisEErrorPage属性がtrueの場合のみ利用可)
・out:クライアントにデータを出力する手段を提供
・page:JSPページそのものを表す(.jspファイルで利用することはほとんどない)
・pageContext:ページ単位で利用可能な情報、暗黙オブジェクトへのアクセス手段提供(タグハンドラクラスで利用。jspファイルで利用することはほぼない)
・request:クライアントから送信されたリクエスト情報にアクセスする手段を提供
・response:クライアントへの応答を操作する手段提供
・session:セッション単位で保持可能な情報を管理(@pageディレクティブのsession属性がtrueの場合のみ利用可)
スクリプトレットと固定テンプレート
スクリプトレットと固定テンプレートは入れ子にして記述できる
ある程度まとまった文字列の出力がスクリプトレットに含まれている場合、積極的に固定テンプレートに切り出すことでコードをよりシンプルに記述できる
宣言部
JSPページで変数を使用する場合宣言部またはスクリプトレットの中であらかじめ宣言する必要がある
宣言部で記述できるのは変数/メソッドの定義のみ
変数はスクリプトレットでも記述できるがメソッドは必ず宣言部で記述する
宣言部では暗黙オブジェクトは利用できない
変数の有効範囲が異なる
<%!~%>の中で宣言された変数はJSPコンテナが起動している間ずっと有効である
スクリプトレットで宣言された変数はページの処理が終了するたび破棄される
同時アクセスの注意
宣言部で宣言された変数が同時アクセスを考慮した設計になっていない(このような状態を スレッドセーフでない という)
宣言部では原則として読み取り専用の変数以外を定義すべきではない
式
単純な値を出力する場合にスクリプトレットの代替として使用することができる
記述の注意
式はあくまでout.printメソッドの引数部分を切り出した省略形なので、複数の変数を続けて記述することはできないし、他のスクリプトを併記することもできない
コメント
コメントの記述は必須ではないが長期的なプログラムの保守を考えた時プログラムを後から読むことを考えれば大事な要素である
・宣言された変数の意味、用途
・クラスやメソッドの概要、引数、戻り値など
・プログラム改定時の履歴(改定日時や対応内容など)
・その他意味あるブロック単位での処理の概要
JSPで利用可能なコメント
4種類のコメントを使い分けられる
・<%--~--%>
JSP独自のコメント
サーブレットやJavaBeansなどでは使えない
宣言部やスクリプトレット内で使用できない
ページ内の複数ブロックをまとめて無効にしたい場合などに利用する
・//
単一行のコメント
サーブレットなどでも使用可
JSP内では宣言部、スクリプトレットで使用
クライアントにはこの箇所はHTMLとして送信されないので変数やメソッドなどのメモ的情報を記述する
・/*~*/
複数行のコメント
サーブレットなどでも使用可
JSP内では宣言部、スクリプトレットで使用
・<!--~-->
HTMLのコメント
宣言部やスクリプトレットでは使用できない
ユーザからも見えてしまうので、ユーザが参照する可能性のある情報(管理情報など)を記述したり、デバッグ時に出力したHTMLを確認するための目印などを埋め込みたい場合便利
TomcatインストールとEclipseでの環境設定
自分のパソコンの状況とインストールしたversion(コマンドつき)
●mac
java -version
java version "1.8.0_71"
●Tomcat
8.0.44
Tomcatインストール
●tar.gzをダウンロード
$ sudo mv ~/Downloads/apache-tomcat-8.0.44 /usr/local
●作業しやすいように/Libraryにシンボリックリンクを貼る
$ sudo ln -s /usr/local/apache-tomcat-8.0.44 /Library/Tomcat
$ sudo chown -R <username> /Library/Tomcat
●起動・シャットダウンのシェルにアクセス権を付与
$ sudo chmod +x /Library/Tomcat/bin/*.sh
●Tomcatを起動
$ /Library/Tomcat/bin/startup.sh
http://localhost:8080で起動される。
●Tomcatをシャットダウン
$ /Library/Tomcat/bin/shutdown.sh
参考/引用したサイト
Eclipseでの環境設定
これは3びきの猫ちゃんを出したくてやった(違う)
EclipseからTomcatの再起動とかそういうのができるよということらしいのだが半分くらいよくわからないしなにがわからないのかもよくわからない
たぶん使うようになればどんな疑問かわかるはず
●Tomcatプラグインをダウンロード(よくわからないまま最新版にした)
●解凍してできたフォルダをeclipse/pluginに移動
●Eclipse再起動でバーのところに猫ちゃんが3びきいたらおけ
Tomcatの設定
●Eclipseのメニューから環境設定→Tomcatを選択
●Tomcatバージョンはバージョン7.xを選択
●Tomcatホームは/Library/Tomcat(わたしの場合)
●設定ファイルは/Library/Tomcat/conf/server.xml(これもわたしの場合)
●適用ボタンを押して完了
●環境設定のサーバー→ランタイム環境で8.0を選択
参考/引用したサイト
ざっくりだけどこんな感じでやった(ほぼ引用)
環境構築にめっちゃ時間かかるのどうにかしたい
でも途中でなにやってるのかわかんなくなるんだよね
たぶんなんでこれが必要か、これにこれするとここがどうなるとかがイメージできてないからなのかなぁ
linuxの操作久しぶりにやったからかなり忘れてるまずい
先が思いやられる
*少し変更があったので編集
8.5.15のとき、
Version: Mars.1 Release (4.5.1)
を使っていたらランタイムのところがうまくいかなかった
昔インストールしたっきりだったのでEclipseもネオン的なやつにしようと思ったけど、そうするとプラグインがうまくいかなかった
結局なにしてもダメだったから、トムキャットを8.0にしてプラグインもやり直したらうまくいった
環境設定は難しいね〜