2010-05-28 4 views
0

Java 프로그램에 바이너리 라이센스 파일을 제공해야합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 데이터는 항상 변경되므로 파일을 작성하고 매번 다시 읽지 않아도됩니다.자바 프로그램에 복합 인수 보내기

데이터는 PHP 페이지

+0

에서 무엇을 제공 할 예정입니까? 좀 더 명확하게 설명하십시오 : "항상 바뀔 것입니다". – OlimilOops

+0

파일에 복잡한 인수를 프로그램에 건네 줍니까? 수시로 변경해야하는 경우 이전 라이센스 데이터를 캐싱하고 파일 액세스 시간을 확인하여 업데이트해야하는지 여부를 결정하십시오. – corsiKa

+0

데이터는 PHP 페이지에서 가져온 것입니다 ... 죄송합니다. – jax

답변

2
는 난 그냥 당신이 당신의 자바 클래스에서 명령 줄

에 를 입력 한 같은 역할을 PHP는 간부() 명령 을 사용하는 것입니다

는, 당신은 방법이 주 이름 한 것이다

이 같은 : 첫 번째 인수로 라이센스를 전송하는 경우

public static void main(String[] args) { 
    //If this is just a single binary string, args[0] will contain the license. 
} 

args[0]는 들어오는 라이센스 될 것입니다.

지금 말하면, 라이센스를 보내기 전에 base64 인코딩을 원할 수 있습니다. 이렇게하면 문자 집합이 전송 될 때 라이센스 파일의 영향을받지 않게됩니다.

PHP는이 목적으로 base64_encode() 함수를 가지고 있습니다.

Java는 이상하게도 Base64 디코딩 내장 기능을 가지고 있지 않습니다 (공식적으로는 공식적인 것이 아닙니다). 그러나 Apache Commons Codec에는 디코더가 포함되어 있습니다.

다시 라이센스를 가정하는 것은 전달 된 우선은 다음과 같습니다

import org.apache.commons.codec.binary.Base64; 

public class GiveMeANameHere { 

    public static void main(String[] args) { 
     Base64 decoder = new Base64(); 
     byte[] license = decoder.decode(args[0]); 

     // Do whatever you need to with the license. 
     // Other strings passed in will appear as elements in args array 
    } 
} 

회원님이 패키지 경우 자바 코드가 어느 -cp path/to/commons-codec-1.4.jar를 사용하여 클래스 경로의로 아파치 코 몬즈 코덱 항아리를 통과해야하거나 나갈 것 JAR 파일을 매니페스트 파일에 저장하십시오.

0

처럼 소리 HTTP를 통해 직접 오는 InputStream을 읽고 싶습니다. 파일 업로드 경로가 끝나면 Commons FileUpload이 (가) 많은 작업을 수행했습니다.

1

사용자 기본 설정 (java.util.prefs)에 라이센스 파일의 URL을 저장하십시오. 사용자 기본 설정이 새 것이거나 URL 및/또는 해당 내용이 더 이상 유효하지 않으면 사용자에게 새 URL을 묻는 메시지를 표시 한 다음 다시 기본 설정에 저장합니다. 그런 다음 URL보기의 내용을 가져올 수 있습니다. java.net.URL.openStream() - 파일이나 웹 주소와 마찬가지로 작동합니다. 볼이

관련 문제