2011-08-16 2 views
1

저는 IntelliJ를 잠시 사용하고 있으며 그 기능들을 즐기고 있습니다 만, Java 애플릿에서 작동하도록 실행 구성을 얻는 데 어려움을 겪고 있습니다. Swing을 사용하는 기존의 Java 도구가 있으며 JApplet 클래스를 사용하여 해당 GUI 객체를 애플릿으로로드합니다. 문제는로드해야하는 몇 개의 구성 파일이 있다는 것입니다. 이 파일을 작업 디렉토리에서로드하고이 지식이있는 디렉토리는 일반적으로 애플릿이 상주하는 디렉토리가됩니다. 내 생각에 주요 문제는 IDEA가 시작 변수를 설정하는 것입니다.IDEA에서 Java 애플릿의 작업 디렉토리를 어떻게 설정합니까?

-Didea.launcher.bin.path=IDEA_BIN_DIR 

변경할 수는 있지만 겉으로보기에는 불가능합니다. 애플릿을 편집하여이 플래그를 재정의하려고 시도했지만 구성 매개 변수를 실행했지만 IDEA는 다른 것을 지정하더라도 위의 매개 변수를 계속 사용합니다.

요약하면 IDEA에서 실행 구성을위한 작업 디렉토리를 설정할 수 없기 때문에 로컬 구성 파일을로드하는 데 어려움을 겪고 있습니다. 누구든지이 문제를 해결하는 방법을 알고 있거나 IDEA에서 구성 파일을 사용하는 Java 애플릿을 실행하는 더 좋은 방법을 알고 있습니까?

답변

2

일반적으로 애플릿은 브라우저의 샌드 박스에서 실행되며 이러한 애플릿은 보안상의 이유로 로컬 컴퓨터의 파일 시스템에 액세스 할 수 없습니다.

따라서 일반적으로 파일 시스템에서 구성 파일을로드하는 것은 좋지 않으며 "작업 디렉토리"는 애플릿에 유용한 용어가 아닙니다.

  • 이 파일은 거의 변경하지 않는 경우 (즉, 단지 개발자의 원칙), 당신이 그 (것)이 애플릿의 클래스 파일에 넣을 수 있습니다 (즉, jar 파일 또는 디렉터리의 개발 과정에서 클래스가 생성 될 위치),로드하려면 class.getResource() 또는 .getResourceAsStream()을 사용하십시오. getCodeBase() 또는 .getDocumentBase() 몇 가지 고정 된 위치의 상대에 하나, 또는 HTML 태그 애플릿 태그에 매개 변수로 지정 - 구성 파일은 웹 마스터에 의해 정의 할 필요가있는 경우

  • 는 웹 서버에 올려.

  • 사용자 지정 구성 파일 (애플릿이 작성할 수 있어야 함) 인 경우 서버에 저장하고 로그인 후 검색/저장해야합니다 (예 : 서버 측에서 일부 논리가 필요함) , 또는 클라이언트 측에 저장합니다.

    JNLP API (javax.jnlp. *)를 사용하는 현재의 방법 - 지속성을 허용하거나 데이터를로드/저장하는 인터페이스가 있습니다 (FileChooser를 가진 사용자). 또는 애플릿에 서명하고 사용자로부터 AllPermission을 요청할 수 있습니다. 그런 다음 파일 시스템에 액세스 할 수 있습니다.

죄송합니다. 귀하의 원래 질문에 대한 답변 (IDEA를 사용하지 않음)은 없지만 다른 방법을 찾는 데 도움이 될 수 있습니다.

+0

답변 해 주셔서 감사합니다. 이 파일을 jar 파일에 추가하고 getResourceAsStream() 메서드를 시도 할뿐만 아니라 사용자의 권한을 얻으려고 시도합니다. 아시다시피 애플릿 구성을 위해 작업 디렉토리를 사용하는 것이 이상하게 보입니다. 이것은이 메소드를 사용하는 기존의 데스크탑 응용 프로그램이 있기 때문에 시도되었으며, 최소한의 작업으로 웹 애플릿으로 변환하려고했습니다. – jluzwick

+0

또한 2 ~ 3 주 안에 아무도 IDEA 응답으로 답장을 보낼 수 없다면 나는 많은 도움이되는 답을 정확한 것으로 표시 할 것입니다. 감사. – jluzwick

+0

데스크톱 응용 프로그램이 FileInputStream에 의해 응용 프로그램 데이터 (사용자 데이터 아님)에 액세스하는 것도 나쁜 생각입니다. 단지 응용 프로그램 jar 파일에 데이터를 넣을 수 없기 때문입니다. 그리고 당신은 현재 디렉토리에 의존합니다. –