2013-07-24 8 views
0

Windows 컴퓨터에서 Java 프로그램을 실행하려고합니다. 프로그램 라이브러리는 네트워크 위치 인 \\libs\myprog에 있습니다. Windows 컴퓨터에서 네트워크 드라이브를 만들 수 없습니다.Java ClassPath에서 네트워크 위치 설정

이제 질문은, 위의 lib 디렉토리에 Java Classpath를 설정하는 방법입니다.

java -cp \\libs\myprog Main 

java -cp //libs/myprog Main 

그러나 아무것도 일 :

나는 다음 시도했다.

+0

이것은 실제로 작동하게 만들 수 있는지 여부에 관계없이 처음부터 정말 나쁜 생각입니다. 프로그램은 비판적으로 네트워크 리소스에 의존해서는 안됩니다. – EJP

+0

@EJP 네, 맞습니다. 실제로 사용하지 않아도됩니다. 그러나 이것은 비즈니스 사용 사례이므로 매우 도움이되지 않습니다! – vineet

+1

시스템에서 원격 폴더를 로컬 폴더로 정의해야합니다. java가 inputStream을 필요로하기 때문에 classpath 리소스가 모두 로컬에있는 것처럼 읽혀지기 때문입니다. 이를 수행하려면 해당 폴더를 로컬 폴더로 정의해야합니다. – Neron

답변

0

특별한 작업을 수행 할 필요가 없습니다 (Java 7에서 확인).

오타가 있었기 때문에 프로그램이 작동하지 않았습니다. 그래서, 만약 내가 내 프로그램의 클래스 경로에 대한 네트워크 경로

\\remote\libs에서 항아리를 추가해야하고 내가 필요로하는 모든 명령 다음 발사하는 것입니다

java -cp local.jar;\\remote\libs\*;. MAIN 

모든 즉!

0

당신이 정말로 필요로하고 정말로 이것을 필요로한다면 (설계 및 성능 측면에서 볼 때 명심하십시오), URLClassLoader을 사용하여 런타임에 라이브러리를 검색 할 수 있습니다. 예를 들어 라이브러리에서로드 할 URL을 구성하십시오. 응용 프로그램을 시작할 때 Main 클래스에 인수로 또는 System 속성으로 전달하여 URLClassLoader에 전달하면 클래스를 검색 할 수 있습니다 (아마도 훨씬 느리고 위험한 로컬 파일 시스템 액세스이지만 작동 할 것입니다). Javadoc 살펴보기 : URLClassLoader javadoc

0

이론적으로 "java -javaagent : ** .jar = option -jar your.jar"로 작업을 완료 할 수 있습니다.

내가 아는 한, 에이전트 클래스의 원격 서버에서 URLClassLoader 등을 사용하여 클래스를로드 할 수 있습니다.

하지만 에이전트 응용 프로그램을 코딩했기 때문에 작동 할 수 있습니다.

관련 문제