2012-11-09 2 views
3

별칭을 사용하여 Java 클래스 경로에 파일을 전달할 수 있습니까? 예를 들어클래스 경로에있는 파일의 별칭 Java

:

java -cp ./file_type1.txt#file.txt com.example.JavaProgram

프로그램이 클래스 경로에 file.txt를 같이 file_type1.txt을 참조 할 것입니다 이런 식으로. 그래서, 나는 동일한 참조로 프로그램 적으로 여러 개의 유사한 파일을 전달할 수 있으며 java 프로그램에서 아무 것도 변경할 필요가 없습니다.

+2

대신 파일 이름/경로를 프로그램 인수로 전달하지 않으시겠습니까? – poussma

+0

자바 프로그램에서 파일을 사용하고 있습니다. 따라서 파일을'''''file_type1.txt''''로 사용하면 다른 파일들을 전달할 수 없게됩니다. 그래서 나는 그것을 일반 클래스로 유지했고 클래스 패스에서 파일의 별명을 지정할 수 있다고 생각했다. – divinedragon

+0

나는 그것을 가지고 있지 않다. 메인에서'java com.example.JavaProgram./file_type1.txt'와 같은 프로그램을 시작하면'myFile = new File (args [0]);'을 할 수 있습니다. 메서드의 매개 변수로 전달하거나 public static 변수에 넣기 만하면 모든 곳에서 유연하게 사용할 수 있습니다. – poussma

답변

2

JAVA에는 이러한 방식이 없습니다 (다른 언어로도 생각되지 않습니다 ...).

자바로, 일단 파일이 클래스 경로에 추가되면 이름 (경로 제외) ClassLoader.getSystemClassLoader().getResourcesAsStream("file_type1.txt") 만 사용하여 내용을 검색 할 수 있습니다. 그것이 어디에 있든 상관 없습니다.

  • 는 명령 행에 지정된 파일 이름합니다 (아마 유일한 txt 파일을 감지하는 응용 프로그램의 (항목을 분할 System.getProperty("java.class.path") + File.pathSeparator) 클래스 경로 분석 :

    는 그런 다음 두 가지 옵션이 있습니다 경로)

  • 응용 프로그램의 매개 변수로 파일의 이름 (이름 만)을 통과 : 자바 -cp ./file_type1.txt com.example.JavaProgram file_type1.txt

그런 다음 구문 분석 할 필요가 그것을 추가하고 add의 이름을 식별한다. italian .txt 파일 이름 너

별칭을 만들 수 없으므로 어떻게 든 응용 프로그램에서 동적 동작을 도입해야합니다.

HIH.

+0

확인해 주셔서 감사합니다. 심지어 나는 같은 라인을 따라 생각하고 있었다. 그냥 JVM을위한 좋은 기능이 될 것이라고 생각했다. 얼마나 복잡 할 지 모릅니다. – divinedragon

0

대신 자바 외부의 UNIX 플랫폼에서 심볼릭 링크 (ln -s)를 만드는 것이 좋습니다.

+1

이 방법을 사용하면 파일을 실행할 때마다 심볼릭 링크를 만들어야합니다. 그것은 그 일을하기위한 원유 방법을 원합니다. 앨리어싱을 규정하지 않습니까? – divinedragon

관련 문제