2011-02-02 4 views
1

자바 스크립트는 Java 응용 프로그램에서 실행됩니다. 그러나 Jquery 라이브러리와 같은 것은 너무 길어서 String 변수에 맞지 않습니다. 파일에서 jquery.js를 읽을 수 있지만 .jar 파일 안에 패키지하는 방법을 모르겠습니다.Java 애플리케이션에 자바 스크립트 파일을 번들하는 방법은 무엇입니까?

+0

jar 파일에 Java 스크립트를 패키지화하려는 이유는 무엇입니까? 그것은 전쟁이 아니어야합니까? – CoolBeans

답변

1

.js 파일로드는 jar 파일에서 다른 모든 리소스를로드하는 것과 같습니다. 일반적으로이 내가 할 것입니다 : jar 파일의 루트에 저장된 파일의 경우

:

SomeClass.getClass().getResourceAsStream("myFile.js") 

: 측면을 따라 항아리에서의 .class 파일을 저장 파일의 경우

SomeClass.getClass().getClassLoader.getResourceAsStream("myFile.js"); 

두 기법 모두 InputStream을 제공합니다. 이것은 코드가 조금 더 많은 작업으로 String으로 바뀔 수 있습니다. Read/convert an InputStream to a String을 참조하십시오.

이 기술은 리소스 파일이 Java 클래스 파일과 동일한 항아리에있을 때 사용됩니다.

+0

jar의 루트에 파일을 저장하려면 어떻게해야합니까? jar 파일에 .class 파일을 저장하는 방법은 무엇입니까? 그 차이점은 무엇입니까? 나는 이클립스를 사용하고있다. – KJW

+0

Eclipse의 기본값은 다음과 같습니다. 기본 패키지 ("src")의 파일은 출력 jar의 루트에 저장됩니다. .java 소스와 동일한 패키지의 자원은 출력 .class 파일과 함께 끝납니다. – Andy

1

당신이 당신의 자바 스크립트 소스를 유지할 수있는 장소의 모든 종류가 있습니다 CLASSPATH에

  • . 당신은 getResourceAsStream()
  • 으로 데이터베이스에 가져옵니다. 예, 데이터베이스입니다. 다른 CLOB를 가져 오는 것처럼 가져옵니다.

저는 개인적으로 두 가지 접근법을 다른 목적으로 사용했습니다. .properties 파일을 유지하는 방식과 정확히 같은 방식으로 자바 스크립트 파일을 빌드 트리에 보관할 수 있습니다. 개인적으로는 .java 파일로 유지 한 다음 빌드 규칙을 사용하여 .war로 끝나지 만 빌드 엔진에서 찾을 수있는 모든 위치에 실제로 살 수 있습니다.

데이터베이스는 웹 응용 프로그램이 동적 업데이트를 허용하는 "스크립트 포털"을 훨씬 쉽게 지원할 수 있기 때문에 스크립트를 보관할 수있는 좋은 곳입니다. 특히 배포 작업과 같은 작업 없이도 "라이브"로 업데이트를 배포 할 수 있기 때문에 Javascript 모듈이 더 중요한 비즈니스 논리를 제어 할 수 있도록 웹 응용 프로그램을 만드는 경우 매우 유용합니다.

많은 도움이되는 한 가지는 Javascript에 사용중인 모든 액세스 경로 (즉, Sun "javax.script"항목 또는 Rhino 바인딩)를 "포장"하는 유틸리티 코드를 만드는 것입니다. 이 시점에서, 개인적으로 나는 직선적 인 Rhino로 갈 것입니다. 왜냐하면 실제로는 한 방향 으로든 다른 방향 으로든별로 차이가 없기 때문이며, Sun의 물건들은 현재의 기후에서 아마 오래되고 버그가있는 Rhino 버전에 머물러있을 것입니다 잠시 동안 업데이트가 표시되지 않음). 유틸리티 래퍼를 사용하여 수행 할 가장 중요한 작업 중 하나는 자바 스크립트 코드 (출처가 어디든)를 다른 서버 인프라의 JavaScript 파일을 가져올 수있게 만드는 것입니다. 그렇게하면 JavaScript 도구 라이브러리를 개발하고 (물론 오픈 소스 라이브러리를 적용 할 수 있습니다) 비즈니스 로직 스크립트에서 가져 와서 사용할 수 있습니다.

관련 문제