홈>
Java requires no correlation between package names and source code file structure. But most IDE's require sub-folder for each part of the package name.
위의 진술이 사실입니까?
이것을 시도하기 위해~/Temp
에서 간단한 클래스를 작성했습니다.
폴더.
package com.gnrcs.lab;
public class Main {
public static void main (String... args) {
System.out.println("Homo Sapiens");
}
}
그런 다음 명령 줄에서
~$ cd ~/Temp/
~$ javac Main.java // it does produce a Main.class file in ~/Temp
~$ java Main
Error: Could not find or load main class Main
~$ java com.gnrcs.lab.Main
Error: Could not find or load main class com.gnrcs.lab.Main
~$ java -cp . com.gnrcs.lab.Main
Error: Could not find or load main class com.gnrcs.lab.Main
내가 뭘 잘못 했니? 도움을 주시면 감사하겠습니다. 감사!
- 답변 # 1
관련 자료
- ansible - 'nginx'와 일치하는 패키지를 사용할 수 없습니다
- javascript - vue + typescript - 사용자 정의 입력을위한 권장 폴더 구조 규칙?
- 최고의 Reactjs 프로젝트 구조 폴더를 만드는 가장 좋은 방법
- powershell - 특정 파일 형식의 특정 트리에서 특정 폴더 구조 만 복사
- node.js - EC2 인스턴스에 앱을 배포하기위한 폴더 구조
- azure - Data Factory를 사용하여 파일을 복사 할 때 Blob Storage에 폴더 구조를 유지하는 방법
- mysql - SQL 명령 및 정렬 조인으로 정렬 기준/정렬로 수백만 행에 대한 SSIS 패키지 최적화
- bash - find 명령을 통해 지정된 폴더가 비어 있으면 스크립트를 종료합니다
- java - 폴더를 다시 패키지로 되돌리기
- 작업 트리 폴더를 구별하는 git 명령은 무엇입니까
- cordova - 패키지 이름 'ioionicstarter'와 일치하는 클라이언트가 없습니다
- 여러 파일로 구성된 패키지 이동 방법
- C ++ 프로그래밍을위한 폴더 구조
- amazon web services - AWS CLI S3 명령이 폴더의 공백에서 작동하지 않음
- bash - 변수에 저장된 epoch 시간은 date 명령으로 전달하고 폴더 이름을 만듭니다
- reactjs - React Native 폴더 프로젝트에 패키지를 설치했지만 항상 다음과 같이 보입니다
- apt - Ubuntu에서 실행 가능한 명령 이름을 통해 패키지 이름을 얻는 방법
- drupal - 라이브러리 폴더의 파일 구조 및 모듈 외부 플러그인 감지
- Electron 앱 패키지 루트 디렉터리에 폴더를 복사하거나 생성하는 방법이 있습니까?
- macos - spotlight 인덱싱에서 폴더 제외 - 명령 줄을 통해
트렌드
- OpenCv의 폴더에서 여러 이미지 읽기 (python)
- 파이썬 셀레늄 모든 "href"속성 가져 오기
- html - 자바 스크립트 - 클릭 후 변경 버튼 텍스트 변경
- git commit - 자식 - 로컬 커밋 된 파일에 대한 변경을 취소하는 방법
- JSP에 대한 클래스를 컴파일 할 수 없습니다
- javascript - 현재 URL에서 특정 div 만 새로 고침/새로 고침
- jquery - JavaScript로 현재 세션 값을 얻으시겠습니까?
- javascript - swiperjs에서 정지, 재생 버튼 추가
- JavaScript 변수를 HTML div에 '출력'하는 방법
- python - 문자열에서 특정 문자 제거
패키지를 사용한 결과는 클래스 또는 인터페이스의 바이트 코드가 패키지 이름과 일치하는 디렉토리 구조에 나타나야한다는 것입니다. 바이트 코드를 올바른 디렉토리 구조에 넣지 않으면 컴파일러 또는 JVM이 클래스를 찾을 수 없습니다. 컴파일 된 바이트 코드 파일은 파일 이름과 일치하는 파일 시스템의 디렉토리 구조에 나타나야합니다. 예를 들어,
.class
com.gnrcs.lab
의 모든 클래스 또는 인터페이스에 대한 파일 패키지는\com\gnrcs\lab\
와 일치하는 디렉토리 구조에 나타나야합니다. . 이 디렉토리 구조를 직접 작성하거나-d
를 사용할 수 있습니다 컴파일하는 동안 플래그를 지정하면 컴파일러가 필요한 디렉토리 구조를 생성하고 해당 디렉토리에 바이트 코드를 배치합니다.프로그램을 실행하려면
-classpath
를 추가해야합니다java
를 실행하는 동안 플래그 . 예 : Temp 디렉토리에 있으면java -classpath .\ com.gnrcs.lab.Main
를 사용할 수 있습니다 .간단히 말하면 다음을 수행하십시오.
<올>javac -d .\ Main.java
. 패키지 이름에 따라 디렉토리가 생성되고 해당 디렉토리에 바이트 코드가 저장됩니다. 당신의 경우에,~/Temp/com/gnrcs/lab/Main.class
.java -classpath .\ com.gnrcs.lab.Main
. 여기에 완전한 이름을 지정해야합니다.-cp
를 사용할 수도 있습니다-classpath
에 대한 바로 가기로 플래그 .(참고 : 리눅스 머신의 즉흥 연주)