🦁

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

2023/06/15に公開

Path(パス)

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

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

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

ユーザー環境変数(User environment variable, 사용자 변수) > システム変数(System variable, 시스템 변수)
Path が両方ある場合、優先度はユーザー環境変数の方が高い可能性がある。

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

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

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

LINEのログインAPIを通して、LINEのサーバーに繋がり、IDとPWを提供することでログインの機能を許可する。
その結果、LINEを起動され、メッセージを送ったり、電話をしたりする。
https://mundol-colynn.tistory.com/123

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. 자바 문서 보는 법 - 패키지,클래스,변수,메소드

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

Discussion