일상기록
Gradle 프로젝트에서 main매서드 실행 (에러해결) 본문
Gradle 프로젝트에서 main매서드 실행 하는 방법은 크게 두가지 있다.
하나는 build.gradle파일이 있는 디렉토리로 이동해서 ./gradlew build 명령어를 입력하면 프로젝트를 빌드하고, build/libs 디렉토리에 Jar 파일을 생성한다.
$ ./gradlew build
버전에 문제가 있거나 자바코드가 자바특정버전이 안맞을경우 이러한 에러가 발생한다. gradle 버전과 자바버전 수정은
이곳을 참고하면 된다. 그외에도 Test케이스가 있는경우 모두 통과해야 에러없이 빌드 후 jar파일이 생성 된다.
$ java -jar build/libs/<your-project>.jar
명령어로 jar파일을 실행하면 된다.
또 다른 방법은 JVM으로 실행가능하다. 내가 하는 프로젝트는 간단한 프로젝트라 JVM으로 실행 하였다.
프로젝트 내의 클래스.java 파일이 있는 폴더로 경로 이동한 후
$ javac 클래스명.java
명령어로 class파일을 만들고 class 파일 경로에서 다음 명령어로 실행한다.
$ java 클래스명
실행시 .class는 생략한다.
만약 다른 경로에 .class 파일이 존재 한다면 '-cp'로 경로를 알려주면 된다.
$ java -cp /path/to/class/files 클래스명
JVM으로 실행시 장단점이 궁금해서 찾아보았다.
JVM 장점
1. JVM의 가장 큰 장점은 플랫폼 독립성이다. Java 언어로 작성된 코드는 모든 운영 체제와 하드웨어에서 동일하게 작동한다 즉, 작성한 Java 프로그램을 한 번 작성하면 다양한 운영 체제와 하드웨어에서 실행할 수 있다.
2. JVM은 메모리 관리를 자동으로 처리하므로 개발자가 메모리 관리에 대한 부담을 덜 수 있다. 또한, JVM은 코드 최적화와 같은 추가 기능을 제공하여 높은 수준의 코드 실행 속도를 보장할 수 있다.
3. JVM의 다른 장점으로는 Java 언어의 객체 지향 프로그래밍 모델과 같은 기능이 있다. Java 프로그램에서 객체를 사용하여 코드를 구성하고, 이러한 객체는 클래스로 구성되어 있으며 클래스는 다양한 메서드와 변수를 가지고 있다. 이러한 객체 지향 기능은 코드의 재사용성과 유지 보수성을 높여준다.
JVM 단점
- 성능: JVM은 Java 코드를 바이트 코드로 컴파일하고, 이를 실행한다. 이 과정에서 추가적인 오버헤드가 발생할 수 있다. 또한, 일부 Java 애플리케이션은 메모리 사용량이 매우 높을 수 있다.
- 메모리 사용량: JVM은 Java 코드의 실행을 위해 추가적인 메모리를 필요로 한다. 일부 Java 애플리케이션은 수백 MB에서 수 GB의 메모리를 필요로 할 수 있다.
- 시작 시간: JVM은 자바 프로그램이 시작될 때 초기화되어야 한다. 이 초기화 작업은 대개 상당한 시간이 소요된다. 때문에 작은 규모의 애플리케이션을 실행할 때에도, 애플리케이션이 시작될 때까지 시간이 걸리는 것이 일반적이다.
- 자바 코드 의존성 관리: Java 애플리케이션은 다른 Java 클래스와 라이브러리에 의존하게 된다. 이러한 의존성을 관리하는 것은 까다로울 수 있다. 만약 라이브러리들이 서로 충돌하거나 버전이 다르다면, 런타임 에러가 발생할 수 있다.
- 플랫폼 종속성: JVM은 운영체제에 종속적이다. 따라서, 같은 자바 코드라도 운영체제에 따라 다르게 동작할 수 있다. 또한, JVM은 하드웨어에도 종속적입니다. 따라서, 애플리케이션을 실행하기 전에 운영체제와 하드웨어를 고려하여 JVM을 선택해야 한다.
'Study' 카테고리의 다른 글
프로세스(Process)란? (0) | 2023.04.20 |
---|---|
Java - 변수(Variable) (0) | 2023.04.17 |