본문 바로가기

IT自主学習 (2023.05.23~)/Java(2023.05.23~)

プログラミング自主学習 7日目 パス/IDEなしでコンパイル、ラン、インプット/API /クラス

Path(パス)

Path(パス)は、環境変数(environment variable,환경 변수)の一つである。

コンピューターは方向音痴であるため、住所が必要である。

Pathはコンピューターがプログラムを実行するため、そのプログラムの位置(住所)を登録する通路だ。
このようなものを環境変数ともいう。

 

pathに住所が登録されない場合、コンピューターはJavaの位置を知りないためエラーが発生する。
そのため、Javaにエラーがある場合は、pathにインストールしたjavaのディレクトリを登録する。


ユーザー環境変数(User environment variable, 사용자 변수) > システム変数(System variable, 시스템 변수)

pathが両方ある場合、優先度はユーザー環境変数の方が高い可能性がある。 



IDEを使わずにもJavaでプログラミングができる。

そのため、CMDでJavaを入力し、先ほどPathをチェックした。


実習の前に以前学んだ概念を簡単にまとめる。
Compile: .javaファイルを .classファイルに変換すること。

Run:.classファイルを実行する。

Input:実行する際に入力値をインプットする。
Output: 入力値により、異なる動作をするアウトプットを出す。


Compile&Run(コンパイル&ラン)

Compile

<命令語>
cd 経路: 入力した経路に変更する。Compileのためにはまず、javaプログラムのあるディレクトリに経路を変更する。

dir: 現在、ディレクトリにあるファイルを並べる。

javac ファイル名.java: .javaファイルを.classに変更する。

7つのファイルが8つのファイルに増加し、classファイルが作成された。

Compileに成功した結果である。

失敗した場合は、javac -cp "." ファイル名.java を入れてみる。


Run

java class名

Program.classを実行し、その結果1,2,3という実引数をプリントした。


Compile&Run&Input

Compile&Run(Library) 

 

Packageを活用する際、時々Libraryが他のフォルダーに移動する場合もある

例えば、既存のLibraryフォルダーがcafeというフォルダーを移動することになったとすれば、

普段のコマンドであれば、このようなエラーが生じる。

 

C:\Users\gram\Desktop\Java1\Programming>java Ok_JavaGoInHome
오류: 기본 클래스 Ok_JavaGoInHome을(를) 찾거나 로드할 수 없습니다.

C:\Users\gram\Desktop\Java1\Programming>javac Ok_JavaGoInHome.java
Ok_JavaGoInHome.java:13: error: unmappable character for encoding MS949
                String Address ="???썙?뙭由ъ뒪 5021?샇";
                                 ^
Ok_JavaGoInHome.java:13: error: unmappable character for encoding MS949
                String Address ="???썙?뙭由ъ뒪 5021?샇";
                                  ^
Ok_JavaGoInHome.java:13: error: unmappable character for encoding MS949
                String Address ="???썙?뙭由ъ뒪 5021?샇";
                                   ^
Ok_JavaGoInHome.java:13: error: unmappable character for encoding MS949
                String Address ="???썙?뙭由ъ뒪 5021?샇";
                                     ^
Ok_JavaGoInHome.java:13: error: unmappable character for encoding MS949
                String Address ="???썙?뙭由ъ뒪 5021?샇";

 

コンピューターは先ほど述べた遠り、方向音痴で自分で探すことができないため、

新しく更新した住所(移動したフォルダー)を入力する必要がある。

(より正確にはJVMがjava Ok_JavaGoInHomeを呼び出す中で、libraryの移動により既存のソースでimportができないためだ。
もちろん、コードを修正することでも解決はできる。)


その際には、-cp ".;移動したフォルダー"というコードを活用することで解決できる。

具体的には、コマンドを入力する。

 

javac -cp ".;cafe" java Ok_JavaGoInHome.java -encoding utf-8(実引数が韓国語であったため)
java -cp ".;cafe"java Ok_JavaGoInHome

 

 

Input(Library)

次はOk_javaGoInHomeInputを実してみる。

Ok_javaGoInHomeInputを実行しようとしたが、またエラーが生じている状況だ。右下を見れば最後に17が書いている。これはコードの17行目に問題があることを意味している。

 

String Name = args[0];

17行目のラインを見ると、args(仮引数)が原因であると推測できる。

そのため、先のコマンドに直接実引数を入れる。

 

java -cp ".;cafe" Ok_javaGoInHomeInput "띵성" 25.0

 

以下のコマンドを入力すれば、

Eclipseやプログラムを使わず、直接実引数を入れることで解決した。

 


API vs UI

UI:ユーザーが機械またはプログラムを操作するために使用する操作装置。ユーザーとプログラムまたは機械を繋ぐ架け橋でもある。携帯のスマートフォンのホームボタン、アプリケーションのアイコンなど、コンピューターのディスプレイなどは典型的なUIの一つである。


API:API(アプリケーションプログラミングインターフェース)は、プログラムやサービス間データを交換し、機能を共有するためのインタフェースであり、相互作用する方法を定義した規約や仕様である。



Java
を"Hello World"を画面に表示させるコードを組み(プログラミング)、JavaOS命令することで、プログラミングを実行する。その結果、コンソールで"Hello World"が表示され、ユーザーが見れる。

 

LINEのログインAPIを通して、LINEのサーバーに繋がり、IDとPWを提供

ることでログインの機能を許可する。

その結果、LINEを起動され、メッセージを送ったり、電話をしたりする。


https://mundol-colynn.tistory.com/123

 

[JAVA / 자바] API vs Library: API와 Library의 차이

API vs Library API(Application Programming Interface)와 라이브러리(Library)는 개발자들이 프로그램을 개발할 때 사용하는 도구와 인터페이스입니다. 이 둘은 서로 연관되어 있지만 구체적인 차이점이 있습니

mundol-colynn.tistory.com

 

APIとLibraryの違いはこちらで参考できる。

 


Class

参照:Youtube '생활코딩', JAVA1 - 13.2. 자바 문서 보는 법 - 패키지,클래스,변수,메소드

初心者基準、Class一つの機能やプログラムだと考えば、分かりやすい。
その機能が似ているClass重複しないよう、分類のためにそれをまとめたものがPackageである。

参照:Youtube '생활코딩', - 13.2. 자바 문서 보는 법 - 패키지,클래스,변수,메소드

public class ClassApp {

 

public static void main(String[] args) {

System.out.println(Math.PI);          PIはmath classの変数(Field)

System.out.println(Math.floor(1.6));  floorはmath classのメッソド(Method)

System.out.println(Math.ceil(2.0));   ceilはmath classのメッソド(Method)

}

 

}

 

また、Classは似ている変数(Field)メッソド(Method)をグループにしたものである。

 

参照:Youtube '생활코딩', - 13.2. 자바 문서 보는 법 - 패키지,클래스,변수,메소드

ざっくりして、このような仕組である。