Java

[IDE없이Java실습#2] IDE와 인터넷 없이 java 소스 두 개 컴파일 및 실행하기

쟈비쓰 2022. 12. 23. 21:40
728x90
이번에는 IDE와 인터넷 없이 2개의 자바 파일 (*.java)을 생성한 후 한 번에 컴파일 후 실행하는 것을 시도했다.
일반적인 프로젝트는 단일 파일을 실행하는 일이 없기 때문에 이것이 조금 더 현실적인 방식이다.

 

실행 전 계획

첫 실습#1에서는 단일 Helloworld.java를 작성하여 Helloworld 클래스 안에 main 함수를 작성하였다.
이번에는 MainApp.java를 작성하여 여기의 main 함수에서 Helloworld.java를 호출하여 Hello를 출력하도록 하였다.

 

vi로 작성한 HelloWorld.java 와 MainApp.java

역시나 계획은 있었지만 시도하면서 다양한 에러가 뜨고 헤맸다......ㅎ

실전은 쉽지 않다ㅠㅠ

 

시도 과정

1. error: cannot find symbol을 보면서도 에러 줄을 제대로 읽지 않아 시간 사용

  • javac HelloWorld.java MainApp.java
  • javac *.java
  • javac ./*.java 

등과 같은 명령어들을 시도했는데 MainApp.java의 컴파일 과정에서 HelloWorld가 자꾸 찾을 수 없는 symbol로 떴다...

이때 에러를 눈여겨봐야 했는데 생각이 짧았다.

 

2. HelloWorld.java 먼저 컴파일 후 순차적 컴파일 시도

아래의 두 명령어를 순차적으로 실행하여 한 번에 한 파일씩 실행도 해보았다.

큰 기대 없이 시도해본 건데 역시나 안 됐다.

> javac HelloWorld.java
> javac MainApp.java

동일하게 error: cannot find symbol 발생~


3. 명령어에 문제가 있음을 의심해 javac -help를 읽고 아래와 같은 명령어 시도

javac -help를 실행할 경우 아래와 같은 도움말을 볼 수 있다.

이 중에서 -sourcepath <path>를 이용하여 컴파일 소스 파일의 위치를 아래와 같이 실행하였는데 문제는 해결되지 않았다....

> javac -sourcepath . HelloWorld.java MainApp.java

그래도 새로운 명령어 하나 알게되었다...!

 

4. 뒤늦게 클래스 파일과 클래스명 HelloWorld에서 w가 소문자인 것을 발견해서 위 세 가지 방법으로 컴파일 후 MainApp.class 실행하여 "Hello" 출력

컴파일 에러를 다시 읽어보니 HelloWorld라는 symbol을 찾을 수 없다는 메시지였다

그리고 내가 작성한 자바 파일은 Helloworld.java였고 클래스도 Helloworld였다.....

대소문자 유의하기....메모..

안타까운 그 상황ㅠ

 

w를 대문자로 고쳐준 다음 다시 컴파일하고 MainApp.class를 실행시켜서 "Hello"를 출력했다.

 

성공!

 
 

배운 내용

  • 에러 원인과 에러줄을 잘 보자
  • -help 유용하다
  • 여러 *.java 파일을 컴파일할 경우 사용 가능한 명령어는 여러 가지 있다
  • 컴파일러는 정말 주어진 파일들만 충실하게 돌린다... class 파일이 존재해도 상관 없다
728x90