반응형

출처

https://stackoverflow.com/questions/19382593/how-to-compile-java-package-structures-using-javac

javac를 사용하여 자바 패키지 구조를 컴파일 하는 방법

다른 패키지를 가져 오는 Java 패키지를 (명령 줄에서) 컴파일 하려고 합니다. 튜토리얼 온라인을 따르고 있었지만 최종 자바 파일 (CallPackage.java)을 컴파일 하려고 하면 오류가 발생하는 것 같습니다.

다음은 파일 구조입니다.

+ test_directory (contains CallPackage.java)
   -> importpackage
       -> subpackage (contains HelloWorld.java)

다음은 CallPackage.java 입니다.

/// CallPackage.java
import importpackage.subpackage.*;
class CallPackage{
  public static void main(String[] args){
  HelloWorld h2=new HelloWorld();
  h2.show();
  }
}

그리도 다음은 HelloWorld.java 입니다.

///HelloWorld.java

package importpackage.subpackage;

public class HelloWorld {
  public void show(){
  System.out.println("This is the function of the class HelloWorld!!");
  }
}

시도했던 단계

  1. subpackage로 가서 HelloWorld.java를 $javac HelloWorld.java로 컴파일 하였습니다.
  2. test_directory로 가서 CallPackage.java를 $javac CallPackage.java로 컴파일 하였습니다.

이는 마지막 명령에서 다음과 같은 오류를 저에게 제공하였습니다.

CallPackage.java:1: package importpackage.subpackage does not exist
import importpackage.subpackage.*;
^
CallPackage.java:4: cannot find symbol
symbol  : class HelloWorld
location: class CallPackage
  HelloWorld h2=new HelloWorld();
  ^
CallPackage.java:4: cannot find symbol
symbol  : class HelloWorld
location: class CallPackage
  HelloWorld h2=new HelloWorld();
                    ^
3 errors

두 패키지 모두 컴파일을 어떻게 할 수 있을까요? 어떠한 도움이든 감사드립니다!


6개 답변 중 1개만 추림

문제는 각 명령 (javac 및 java)에 대해 클래스 경로를 설정해야 한다는 것입니다.

시도한 단계

  1. 하위 패키지로 이동하는 대신 최상위 수준에서 HelloWorld.java를 컴파일합니다.
$ javac -cp . importpackage/subpackage/HelloWorld.java
  1. 같은 방법으로 CallPackage.java를 컴파일합니다.
$ javac -cp . CallPackage.java
  1. 클래스 경로를 사용하여 파일을 실행하십시오.
$ java -cp . CallPackage

참고 : "$ java CallPackage"를 실행하면 "오류 : 주 클래스 CallPackage를 찾거나 로드 할 수 없습니다" 오류가 발생합니다.

요약하면 각 단계에서 클래스 경로를 지정해야 합니다. 그렇게 실행한 후에 작동했습니다.

반응형
반응형

출처 : https://stackoverflow.com/questions/42988977/what-is-the-purpose-of-pip-install-user

"pip install --user ..."의 목적은?

pip install --help 로부터

--user 당신의 플랫폼의 Python 사용자 설치 디렉터리에 설치합니다. 일반적으로 ~/.local/, 또는 윈도우즈는 %APPDATA$\Python입니다. (전체 세부사항은 site.USER_BASE Python 문서를 보세요.)

site.USER_BASE 문서는 제가 이해하지 못하는 흥미로운 NIX 주제이며 무시무시 합니다.

일반 영어로 --user의 목적은 무엇입니까? 왜 패키지는 ~/.local에 설치되나요? 왜 저의 $PATH에 어딘가 실행 프로그램을 놓지 않을까요?


8개 답변 중 1개

pip는 기본적으로 (/usr/local/lib/python3.4 같은) 시스템 디렉터리에 Python 패키지를 설치합니다. 이는 root 권한이 필요합니다.

pip의 --user는 대신에 당신의 home 디렉터리에 패키지를 설치합니다. 이는 특별한 권한을 요구하지 않습니다.

추가 참고주소 : https://scicomp.stackexchange.com/questions/2987/what-is-the-simplest-way-to-do-a-user-local-install-of-a-python-package

반응형

+ Recent posts