6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【社内勉強会】Javaの基礎~IDEを使わずに実行~(2017/07/06)

Last updated at Posted at 2017-07-05
1 / 26

0.はじめに


対象者など

対象者

  • 普段Javaを使っている人
  • Java8から利用できるラムダ式を使ったことがない人

前提知識

  • 基本的なJavaの使い方

伝えたいこと

  • コマンドでJavaを実行する方法
  • ラムダ式

参考図書

Java本格入門.jpg
『Java本格入門
~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで』技術評論社


目次

  1. Javaの概要
  2. IDEを使わずコマンドでJavaを実行

1. Javaの概要


Javaの特長

1995年、Sun Microsystemより発表されたプログラミング言語

  • オブジェクト指向を前提としている
  • プラットフォーム非依存。
    • OSごとにプログラムを修正する必要がない。
    • Java仮想マシン(Java VM)がOSの依存部分を吸収
  • 利用者が多い
    • 優れたライブラリ、ミドルウェアが多い

Java仮想マシン(Java Virtual Machine: JVM)の図

JVMのスライド.jpg

SlideShare: Java Night Seminar for Java Begineers 引用


Javaの3つのエディッション

  • Java SE(Standard Edition)
    • Java VMや標準的なAPIなど。
  • Java EE(Enterprise Edition)
    • サーバアプリケーションの開発に必要な機能(Webサービスなど)
  • Java ME(Micro Edition)
    • 家電製品、携帯電話などの組み込み系

Javaの環境

  • JRE(Java Runtime Environment)

    • Javaアプリケーションの実行環境。
    • jarファイルやクラスファイルを実行できる。
  • JDK(Java Development Kit)

    • Javaアプリケーションの開発環境。
    • コンパイラー、デバッガなどのツールが含まれている。

※「Java本格入門」P16-17参照


Javaの概念図

JREとJDK.PNG

Java Platform Standard Edition 8ドキュメント 引用


2. IDEを使わずコマンドでJavaを実行


IDEを使わずにコマンドで試す目的

  • IDEが行ってくれている内容を、理解する
    • IDEでできること、できないことを知る
    • IDEで適切な設定が行える
  • IDEで発生したエラーを解決できるようになる

※個人的見解


事前準備

  • 環境変数PATHに、JDKのbinフォルダを追加。
  • java, javacコマンドが使えるようにする。

[Try] コマンドでコンパイル&実行

  • javacコマンドでコンパイルすると、sample\Hello.classが生成される。
javac sample\Hello.java
sample/Hello.java
package sample;
/** Print Hello World */
public class Hello {
	public static void main(String[] args) {
		System.out.println("Hello");
	}
}
  • javaコマンドで実行する
java sample.Hello 
REM ⇒ "Hello"

Javaクラスファイル

Javaクラスファイルは、Java仮想マシン (JVM) 上で実行可能なJavaバイトコードを含む(.class拡張子付きの)ファイルである。

Wikipedia: Javaクラスファイル 引用

[Try] javapコマンドで逆アセンブル

javap -verbose sample\Hello

3. Javaの基本的な用語


クラスパス

外部ライブラリを参照(jarファイルなど)するのに、設定する必要がある。

クラス・パスは、Java Runtime Environment(JRE)がクラスおよびその他のリソース・ファイルを検索するパスです。

クラス検索パス(クラス・パス)は、JDKツールを呼び出すときに-classpathオプションを付ける(推奨される方法)か、CLASSPATH環境変数を設定して設定できます。-classpathオプションが推奨されているのは、アプリケーションごとに個別に設定できるので、ほかのアプリケーションに影響を与えたり、ほかのアプリケーションからこの値が変更されたりすることがないためです。

Oracleリファレンス クラス・パスの設定 引用


jarファイル

Java ARchiveの略。

jarコマンドは、ZIPおよびZLIBの圧縮形式に基づいた汎用のアーカイブおよび圧縮ツールです。ただし、jarコマンドの主な目的は、いくつかのJavaアプレットやアプリケーションを1個のアーカイブにパッケージ化することです。

Oracleリファレンス jar

[Try] jarファイルの拡張子を"zip"に変更して、zip展開できることを確認。
[Try] jarコマンドでjarファイルを展開。

REM -x: 展開, -v:詳細情報出力, -f:ファイル名指定
jar -xvf sample.jar

[補足] マニフェストファイル

jarファイル中には、META-INF/MANIFEST.MFというマニフェストファイルがある。

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: 1.5.0_22 (Sun Microsystems Inc.)
Built-By: hen
Build-Jdk: 1.5.0_22
Implementation-Title: Commons Lang
Implementation-Vendor: The Apache Software Foundation
Implementation-Vendor-Id: org.apache
Implementation-Version: 3.0

~以下省略~

commons-lang3-3.0.jar のマニフェストファイル

マニフェストファイルには、バージョンや、jarファイルの作成に使用したツールが記述される。

KAB-studio マニフェストファイル


Javaコマンドのオプション

Javaオプションのカテゴリの一部。

  • 標準オプション

    • Java仮想マシン(JVM)のすべての実装でサポートされる
  • 非標準オプション

    • Java HotSpot仮想マシンに固有の汎用オプション。すべてのJVM実装でサポートされる保証はない
    • -Xから始まる
  • 拡張ランタイム・オプション

    • Java HotSpot仮想マシンの操作の特定の領域のチューニングに使用するための開発者用オプション
    • -XXから始まる
    • ブール-XXオプションはプラス記号で有効、マイナス記号で無効を表す。(-XX:+OptionName , -XX:-OptionName)

Oracle リファレンス java 参照


使ったことがあるJavaオプション

  • -Dproperty=value : システム・プロパティの値を設定

    • -Duser.language=ja, -Duser.country=JPなど
    • Javaソースでは、System.getProperty("user.language"); で値を取得できる
    • Tomcat Configure Managerでは、JVM引数で指定
  • -Xmxsize :メモリー割当てプールの最大サイズ(バイト単位)を指定

    • -Xmx1024m:1024MBを指定
  • -XX:+UseGCLogFileRotation:GCログのローテーションを有効にする

※ 参考サイト
Java HotSpot VM Options


付録


Java EE

  • javax.*パッケージ(Java SEでもjavaxから始まるクラスもある)
  • Tomcatのライブラリにも含まれている(servlet-api.jarなど)

Javaのバージョン

Javaコマンドのバージョンの確認方法。

java -version
⇒ java version "1.8.0_131"

オラクルでは定期的に更新が利用可能になります。更新が発生すると、バージョン文字列に更新版のバージョン番号も含まれます。つまり、JDK 8 update 5(JDK 8u5)ではバージョン文字列は"1.8.0_5"になります。

Java Platform, Standard Edition 8の名前とバージョン 引用


Javaの環境変数

Javaを使うアプリケーション(Tomcatなど)は、環境変数JAVA_HOMEJAVA_OPTSなどを設定する場合がある。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?