プログラミング自主学習 DAY7 パス/IDEなしでコンパイル、ラン、インプット/API /クラス
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を起動され、メッセージを送ったり、電話をしたりする。
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