반응형

출처

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/4585929/how-to-use-cp-command-to-exclude-a-specific-directory

특정 디렉터리를 제외하고 'cp' 명령 사용하는 방법

저는 특정 하위 디렉터리(sub-directory)에서 몇 개의 파일을 제외하고 그 디렉터리의 모든 파일을 복사하고 싶습니다. 저는 cp 명령어는 --exclude 옵션이 없는 것을 알게 되었습니다. 이를 어떻게 할 수 있을까요?

19개 답변 중 1개

rsync는 빠르고 쉽습니다.

rsync -av --progress sourcefolder /destinationfolder --exclude thefoldertoexclude
rsync -av --progress 원본폴더 /대상폴더 --exclude 제외할폴더

당신은 --exclude를 여러번 사용할 수 있습니다.

rsync -av --progress sourcefolder /destinationfolder --exclude thefoldertoexclude --exclude anotherfoldertoexclude
rsync -av --progress 원본폴더 /대상폴더 --exclude 제외할폴더 --exclude 또다른제외할폴더

--exclude 뒤의 폴더에 thefoldertoexclude 디렉터리는 sourcefolder, 즉 sourcefolder / thefoldertoexclude와 관련이 있습니다.

또한 실제 명령을 실행하기 전에 무엇이 복사되는 지 보기만 하려면 -n을 추가할 수 있고 괜찮다면 명령줄에서 -n을 제거하면 됩니다.

반응형

+ Recent posts