Javaを自分のWindowsのPC上で開発しよう&CSE上での実行方法
はじめに
プログラミング1の講義にてJavaの導入方法が適切に示されていなかったことで、混乱が生じているように感じる。今回はCSE上での実行方法と自宅のPCで開発はどのように行うのかを解説していく。
CSE上でのJavaの実行方法
コンソールを開く
左上のシステムからコンソール(黒い画面; ターミナル; 端末)を開きましょう。
エディタでHello.javaの作成
Vimの使い方
コンピューター入門ではemacsというエディタを用いてテキストを編集したが、emacsよりもVimの方が個人的に使いやすいため、こちらをおすすめする。
Vimのには「コマンド入力モード」「削除モード」「挿入モード」がある。
まずドキュメントを開くと、以下のような画面となっていると思うので、
コマンド入力モード
キーボード左上のEscキーを押してみてください。これでコマンドを入力できるモードになっています。
まずは終了の仕方は:q
(コロンとQ)です。画面下部に文字が入力した文字が表示されて居ると思います。もしも入力を間違えたらもう一度Escキーを押してください。
そしてEnterを押すとVimを終了することができます。
ただし、テキストに変更が加わっていて、「No write since last change (add ! to override)」
というエラーが出るときは、もう一度Escキーを押して:q!
のように!を加えてコマンドを入力すると、Vimを強制的に閉じることができます。(このときテキストは保存されません)
挿入モード
次に挿入(Insert)モードへの行き方を紹介します。VimでHello.java
を開いて、左上のEscキーを押し、右上のInsertキーを1度だけ押してみてください(2度押すと下記の削除モードになります)。
するとコメントが表示されていた欄(画面下部)に---- Insert (挿入) ----
が表示されると思います。この状態では自由にテキストを入力することができます。
削除モード
Vimを開いた状態でEscを押し、Insertを2回押すとReplaceモードになります。
Insertモードに戻るには、一度Escを押し、一度だけInsertを押すことで可能です。
Vimで実際に編集をしてみる
vim Hello.java
をコンソールのコマンドに入力しましょう。
適切な内容を書き入れるましょう。以下のような内容が適切だと思います。
class Hello { public static void main(String[] args) { System.out.println("Hello!"); } }
Vimをコマンド入力モード(Escを一度押す)にして、保存と終了のコマンド:wq
を入力すると、ドキュメントを保存することができます。
コンパイル(javac)と実行(java)
- Vimを
:wq
で終了
→コンソールに戻ります - コンソールに戻ったら、コンパイルをするために
javac Hello.java
を入力します。(なお完了しても特に何も出ません) - 次に実行をするために
java Hello
を入力します。 - 先程の内容が正しく書き込まれていたら
Hello!
と出力(表示)されると思います。 (もしも以上で異常が起きたら苦情を申し付けください)
以上のようにしてCSE上でJavaを実行することができます。
Eclipseを使ったWindows上でのJava開発
CSEに接続してコードを書くのはかなり辛いです。よってWindows上でJava開発をすることをおすすめします。教科書にも載っていると思いますが、ここはEclipseを用いた開発の方法を説明をします。(前節とかぶる部分もあります)
JDKのダウンロードとインストール_
Java開発環境、通称JDKとはJavaを開発するために必要なソフトウェア群です。
ただしJDKは、今回ダウンロードするEclipseには全部入っていると思うので、ダウンロードとインストールは結局のところ不要です。
一応、入れておきたい人は# JDKのダウンロードとインストール を参照してください。
Eclipseのダウンロードとインストール
Eclipse公式サイトからJava開発者用のものをダウンロードしてもよいですが、英語のままになるため、翻訳と必須プラグインがインストール済みのEclipseをダウンロードしましょう。
Eclipse 日本語化 | MergeDoc Project
「Pleiades All in One ダウンロード」の「Eclipse 2020」を押して、行「Windows 64bit Full Edition」の、列「Java」をとりあえず選びましょう。 (わかっている人はStandard Editionを選んでも大丈夫です。環境設定とJava15とかをインストールする必要があるだけだと思います。たぶん)
ダウンロードしたファイルは7-Zipというソフトを使って展開(解凍)してください。(それ以外だとエラーが出ます) 圧縮・解凍ソフト 7-ZipからWindows x64のものをダウンロードして、ダウンロードしたインストーラーのファイルを実行してください。
7-Zipで展開(解凍)をするときは、先程のEclipseのファイルを選択して、右クリックから7-Zip→展開→OKとしてください。 ファイルが展開できましたら、たとえばCドライブ直下などに、先程展開して生成されたEclipseのフォルダを移動してください。
Eclipseでプロジェクトを作ってみよう
丸投げします。以下サイトを参考にしてください。
「Eclipse」の基本操作に慣れる (1/2):Eclipseではじめるプログラミング(2) - @IT
Windows上でのJavaの実行方法(Eclipse無し)
CSEに接続してコードを書くのはかなり辛いです。よってWindows上でJava開発をすることをおすすめします。
今回は多分教科書には載っていないEclipseなどのIDE(統合開発環境)を使わない実行方法を解説します。
**ただし、この節はやや大変なので今回は推薦しません。上記の# Eclipseを使ったWindows上でのJava開発をおすすめします。
JDKのダウンロードとインストール
JavaDevelopmentKit(Java開発環境?)、通称JDKとはJavaを開発するために必要なソフトウェア群です。
Java8のJDKはOracleのサイトからダウンロードできます。
Java SE Development Kit 8 - Downloads | Oracle 日本
基本的に、Java SE Development Kit 8uXXX の項目の「Windows x64」の「jdk-8uXXX-windows-x64.exe」を押して、出てきたポップアップを許諾すると、Oracleのアカウントが必要になります。
Oracleのアカウントを適当に作ったら(詳細な手順は省きますが、メールアドレスと氏名などを書くとかだけだったと思います)、ログインしてダウンロードしましょう。ダウンロードしたファイルをダブルクリックしてインストールをしてください。
OpenJDKをダウンロードしたい場合 (やや慣れが必要なため、この記事では推薦しない)
なんやかんや あって、JDKのダウンロードはOpenJDKの方からダウンロードするのが良いかもしれないです。しかし、なんやかんや あったので色々なディストリビューションあり、JavaFXがなかったり、ちゃんと話さないとわからないので、とりあえず今回はおすすめしません…(ちょっとまだ全貌が分かっていないです)。
- AdoptOpenJDK 8 インストーラー版 ダウンロードして実行!
AdoptOpenJDK - Open source, prebuilt OpenJDK binaries
Upstream | AdoptOpenJDK - Open source, prebuilt OpenJDK binaries
Operating System: はWindowsを。Architecture: はx64を選択(するしかないい)のでこれを選択して、JDKと書いてある方の.zipをダウンロード。ダウンロードしたzipファイルを展開し、展開したファイルを適当な浅めのフォルダに移動してください。そしてこの中のbinフォルダに対して、環境変数の設定をしてください。
javaファイルの作成
Hello.java
というファイルを作成します。
まずは、拡張子を表示してください。(参考:
Windows 10でファイルの拡張子を表示する方法 - NEC LAVIE公式サイト サービス&サポート )
- 適当なフォルダ内にて右クリックをして 「新規作成>テキストドキュメント」をクリックしてください。
→ 「新規テキストドキュメント.txt」というファイルが生成されている。 - 名前をHelloに変える。またこのファイルの拡張子「.txt」を「.java」に変更します。つまりファイル名としては
Hello.java
となります。
ファイル名変更の方法はファイル名を変更 - NEC LAVIE公式サイト サービス&サポート を確認してください。
javaファイルの編集
Hello.java
というjavaファイルを作成したら、簡単なプログラムを書いてみましょう。例えばさくらエディタやメモ帳などのエディタでHello.java
を開いて(ダブルクリックからプログラムを選択など)、以下の内容を入力(コピペも可)してみてください。
class Hello { public static void main(String[] args) { System.out.println("Hello!"); } }
そうしましたら作ったjavaファイル(Hello.java
)をCtrlキーとSキーの同時押し(通常はこれをCtrl+Sと表記しますので覚えておいてください) などで保存してください。
コンパイル(javac)と実行(java)
作ったjavaファイルを保存しましょう。
1. WinキーとRキーを同時押し(Win+R)して、出てきたウィンドウにcmd
と入力します。
→コマンドプロンプトという黒い画面が起動すると思います。(一応コンソールとも言うかもしれないです; 省略してCMDと書くことがあります)
2. コンパイルをするためにjavac Hello.java
をコマンドプロンプトに入力します。(なお完了しても特に何も出ません)
3. 次に実行をするためにjava Hello
を入力します。
4. 先程の内容が正しく書き込まれていたらHello!
と出力(表示)されると思います。
以上のようにしてWindows上においてEclipse無しでJavaを実行することができます。(ちょっと初心者には辛いですね)
WSLで開発してみる
自分のWindows上でCSEのLinux環境を再現することができます。
Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microsoft Docs
Microsoft公式サイトに記述がありますので参考にしてみてください。
また、新しいSSDとかを買ってCentOSをインストールして載っけるのもいいかもしれません。
WSL上のLinux(CentOSやUbuntu)でも、# CSE上でのJavaの実行方法 と同じことをすれば大丈夫だと思います。また、WSL上ではLaTeXをinstallしたりして、この環境でLaTeXが使えちゃったりします。詳しくは調べてください。
【Google Colaboratory / Python】Excelのデータからシャピロ-ウィルクの検定とコルモグオロフス-ミノルフ検定(KS検定)を行う方法
大学の課題で大半がR言語を用いていたが、R言語って環境構築が大変そう(適当)なので、環境構築なしですぐにPythonを使う方法をここに書く。
1. Google Colaboratoryにログインする
Google Colaboratoryにアクセスして、自分のGoogleアカウントでログインしましょう。
2. Google Colabのノートブックを新規作成
「ファイル」>「ノートブックを新規作成」をクリック
3. Excelファイルのアップロード
左側にあるファイルのボタン(青色で囲んであるアイコン)をクリックして、
オレンジ色の範囲にドラッグ&ドロップでExcelファイルをアップロードしてください。
(もしくは赤色のボタンを押してアップロードしてください)
邪魔なのでオレンジ範囲のXボタンを押して非表示にしてください。
4. Excelファイルの読み込みテスト
注意: 以下データ1つ1つに対して実行してあげないと、いい感じになりません。(身長のデータだけとか体重のだけという意味です) あと、しばらくするとExcelファイルは削除されるので注意してください。(仮想環境ごとに削除されるため)
今回のExcelファイルの形式
今回用いるExcelファイルは以下のようになっています。
・Excelファイル名は「data.xlsx」。
・Sheet1の1列目に身長をheaderありで、headerの下にデータを置いています。
・Sheet2の1列目に体重をheaderありで、headerの下にデータを置いています。
ソースコード
import pandas as pd import matplotlib.pyplot as plt df = pd.read_excel("data.xlsx", sheet_name="Sheet1") df.head()
pd.read_excel("data.xlsx", sheet_name="Sheet1")
注意
第一引数にはExcelファイル名, sheet_nameにはシート名を書きます。
もしもExcelファイルが、たとえば次のような形式であれば以下のようにしてください。
(ry)(後で書くかも)
参考: pandasでExcelファイル(xlsx, xls)の読み込み(read_excel)
ソースコードなど参考
【初心者向け】Google ColaboratoryでDataFrameにExcel・CSVファイルを読み込む - Qiita
実行
以下のようにソースコードをコピペして、適切に編集したら三角丸アイコンを押して実行します。
すると以下のように表示されるはずです。
ここで適切に設定できていれば大丈夫ですが、できていなければエラーが出たり、この後で失敗することになってしまいます。
5. シャピロ-ウィルクの検定を行う
やっと本番です。
コードセルの追加
「+コード」ボタンを押して、コードの欄(コードセル)を増やします。
新しくできたコードセルへ、次のソースコードを書き込んでください。
ソースコード
import numpy as np from numpy.random import * from scipy import stats import pandas as pd import matplotlib.pyplot as plt def check_norm(x): plt.title("height") plt.hist(x, bins = 10, ) #ヒストグラム表示 plt.pause(.01) stats.probplot(x, dist = "norm", plot = plt) #QQプロット表示 plt.pause(.01) W, p = stats.shapiro(x) #シャピロウィルク検定 print("シャピロウィルク検定のp値: " + str(p)) print("データ数: " + str(len(x))) df_height = pd.read_excel("data.xlsx", sheet_name="Sheet1") #df_height.head() data_height = df_height["身長"] check_norm(data_height)
先程のように自分のデータと合うように適切に、このソースコードを編集してください。
ソースコード参考
Pythonでデータの正規性を確認するサンプルコード - なろう分析記録
実行
実行結果などは以下のようになります。
6. コルモグオロフス-ミノルフ検定(KS検定)を行う
だいたいシャピロウィルクの検定と同じです。
コードセルの追加
「+コード」ボタンを押して、コードの欄(コードセル)を増やします。
新しくできたコードセルへ、次のソースコードを書き込んでください。
ソースコード
import numpy as np from numpy.random import * from scipy import stats import pandas as pd import matplotlib.pyplot as plt def check_norm(x): plt.title("height") plt.hist(x, bins = 10, ) #ヒストグラム表示 plt.pause(.01) stats.probplot(x, dist = "norm", plot = plt) #QQプロット表示 plt.pause(.01) loc, scale = stats.norm.fit(x) n = stats.norm(loc=loc, scale=scale) value = stats.kstest(x, n.cdf) #コルモグオロフスミノルフ(KS)検定 print("コルモグオロフスミノルフ(KS)検定のp値: " + str(value.pvalue)) print("データ数: " + str(len(x))) df_height = pd.read_excel("data.xlsx", sheet_name="Sheet1") #df_height.head() data_height = df_height["身長"] check_norm(data_height)
先程のように自分のデータと合うように適切に、このソースコードを編集してください。
value = stats.kstest(x, "norm") #コルモグオロフスミノルフ(KS)検定(これは嘘です)
KS検定の場合は5.と違い、このようにします。
平均、標準偏差、サンプル数
loc, scale, size
を適切に設定する必要があるそうです。
ソースコード参考
pythonで正規性の検定【コロモゴロフスミルノフ検定(KS検定)】 - 技術メモ
K-S検定(コルモゴロフ-スミルノフ検定)と、その誤用について - Qiita
p_value is 0 when I use scipy.stats.kstest() for large dataset - Stack Overflow
実行
データを用意していないため、実行結果がありません。
まとめ
以上のようにすることで、シャピロウィルクの検定とKS検定を環境構築せず、Google Colaboratory上のPythonで行うことができます。
お疲れ様でしたー!