Commons Lang
I. Commons Lang란?
Commons-Lang은 java.lang에 있는 클래스처럼 기능적으로 필요한 유틸리티들을 모아놓은 클래스들의 집합입니다. 아마도 여러분들 역시 직접 유틸리티 클래스들을 만들어 사용하고 있을겁니다. 즉 코딩을 하다보면 이렇거 있었으면 좋겠다 싶은것들이 Commons Lang에 다 있다고 생각하시면 됩니다 ^^
II. 다운로드 및 설치
http://jakarta.apache.org/site/downloads/downloads_commons-lang.cgi 에서 다운받자!
설치는 각 어플리케이션의 클래스 패스에 복사합니다.
III. org.apache.commons.lang.SystemUtils
SystemUtils는 java.lang.System 클래스 처럼 시스템에 관련된 기능을 쉽게 이용 할 수 있도록 하는 시스템 관련 유틸리티입니다.
시스템 변수들을 가져올 때 매번 System.getProperty("JAVA_HOME")를 하기보다 SystemUtils.JAVA_HOME하면 간단하기 때문에 SystemUtils가 쓸만합니다.
SystemUtils의 변수들은 모두 static 변수이기 때문에 SystemUtils 객체생성 없이 SystemUtils.XXX로 바로 사용할 수 있습니다.
예) System.out.println("SystemUtils.FILE_ENCODING : "+SystemUtils.FILE_ENCODING);
반환값 | 변수명 | 설명 |
String | SystemUtils.FILE_ENCODING | System.getProperty("file.encoding") |
String | SystemUtils.FILE_SEPARATOR | System.getProperty("file.separator") |
String | SystemUtils.JAVA_CLASS_PATH | System.getProperty("java.class.path") |
String | SystemUtils.JAVA_CLASS_VERSION | System.getProperty("java.class.version") |
String | SystemUtils.JAVA_COMPILER | System.getProperty("java.compiler") |
String | SystemUtils.JAVA_EXT_DIRS | System.getProperty("java.ext.dirs") |
String | SystemUtils.JAVA_HOME | System.getProperty("java.home") |
String | SystemUtils.JAVA_IO_TMPDIR | System.getProperty("java.io.tmpdir") |
String | SystemUtils.JAVA_LIBRARY_PATH | System.getProperty("java.library.path") |
String | SystemUtils.JAVA_RUNTIME_NAME | System.getProperty("java.runtime.name") |
String | SystemUtils.JAVA_RUNTIME_VERSION | System.getProperty("java.runtime.version") |
String | SystemUtils.JAVA_SPECIFICATION_NAME | System.getProperty("java.specification.name") |
String | SystemUtils.JAVA_SPECIFICATION_VENDOR | System.getProperty("java.specification.vendor") |
String | SystemUtils.JAVA_SPECIFICATION_VERSION | System.getProperty("java.specification.version") |
String | SystemUtils.JAVA_VENDOR | System.getProperty("java.vendor") |
String | SystemUtils.JAVA_VENDOR_URL | System.getProperty("java.vendor.url") |
String | SystemUtils.JAVA_VERSION | System.getProperty("java.version") |
String | SystemUtils.JAVA_VM_INFO | System.getProperty("java.vm.info") |
String | SystemUtils.JAVA_VM_NAME | System.getProperty("java.vm.name") |
String | SystemUtils.JAVA_VM_SPECIFICATION_NAME | System.getProperty("java.vm.specification.name") |
String | SystemUtils.JAVA_VM_SPECIFICATION_VENDOR | System.getProperty("java.vm.specification.vendor") |
String | SystemUtils.JAVA_VM_SPECIFICATION_VERSION | System.getProperty("java.vm.specification.version") |
String | SystemUtils.JAVA_VM_VENDOR | System.getProperty("java.vm.vendor") |
String | SystemUtils.JAVA_VM_VERSION | System.getProperty("java.vm.version") |
String | SystemUtils.LINE_SEPARATOR | System.getProperty("line.separator") |
String | SystemUtils.OS_ARCH | System.getProperty("os.arch") |
String | SystemUtils.OS_NAME | System.getProperty("os.name") |
String | SystemUtils.OS_VERSION | System.getProperty("os.version") |
String | SystemUtils.PATH_SEPARATOR | System.getProperty("path.separator") |
String | SystemUtils.USER_COUNTRY | System.getProperty("user.country") != null ? System.getProperty("user.country") : System.getProperty("user.region") |
String | SystemUtils.USER_DIR | System.getProperty("user.dir") |
String | SystemUtils.USER_HOME | System.getProperty("user.home") |
String | SystemUtils.USER_LANGUAGE | System.getProperty("user.language") |
String | SystemUtils.USER_NAME | System.getProperty("user.name") |
float | JAVA_VERSION_FLOAT | 자바 버젼을 float형으로 |
int | JAVA_VERSION_INT | 자바 버젼을 int형으로 |
boolean | IS_JAVA_1_1 | 자바버젼이 1.1인가? |
boolean | IS_JAVA_1_2 | 자바버젼이 1.2인가? |
boolean | IS_JAVA_1_3 | 자바버젼이 1.3인가? |
boolean | IS_JAVA_1_4 | 자바버젼이 1.4인가? |
boolean | IS_JAVA_1_5 | 자바버젼이 1.5인가? |
boolean | IS_OS_AIX | 운영체제가 AIX인가? |
boolean | IS_OS_HP_UX | 운영체제가 HP Unix인가? |
boolean | IS_OS_IRIX | 운영체제가 IRIX인가? |
boolean | IS_OS_LINUX | 운영체제가 LINUX인가? |
boolean | IS_OS_MAC | 운영체제가 MAC인가? |
boolean | IS_OS_MAC_OSX | 운영체제가 MAC OSX인가? |
boolean | IS_OS_OS2 | 운영체제가 OS2인가? |
boolean | IS_OS_SOLARIS | 운영체제가 SOLARIS인가? |
boolean | IS_OS_SUN_OS | 운영체제가 SUN인가? |
boolean | IS_OS_WINDOWS | 운영체제가 WINDOW인가? |
boolean | IS_OS_WINDOWS_2000 | 운영체제가 WINDOW 2k인가? |
boolean | IS_OS_WINDOWS_95 | 운영체제가 WINDOW 95인가? |
boolean | IS_OS_WINDOWS_98 | 운영체제가 WINDOW 98인가? |
boolean | IS_OS_WINDOWS_ME | 운영체제가 WINDOW ME인가? |
boolean | IS_OS_WINDOWS_NT | 운영체제가 WINDOW NT인가? |
boolean | IS_OS_WINDOWS_XP | 운영체제가 WINDOW XP인가? |
이를 바탕으로 제 컴(win2k)에서 출력한 결과입니다.
변수명 | 출력결과 |
SystemUtils.FILE_ENCODING | MS949 |
SystemUtils.FILE_SEPARATOR | \ |
SystemUtils.JAVA_CLASS_PATH | C:\Tomcat 4.1\bin\bootstrap.jar |
SystemUtils.JAVA_CLASS_VERSION | 48.0 |
SystemUtils.JAVA_COMPILER | null |
SystemUtils.JAVA_EXT_DIRS | C:\j2sdk1.4.2_06\jre\lib\ext |
SystemUtils.JAVA_HOME | C:\j2sdk1.4.2_06\jre |
SystemUtils.JAVA_IO_TMPDIR | C:\DOCUME~1\kitty1\LOCALS~1\Temp\ |
SystemUtils.JAVA_LIBRARY_PATH | C:\j2sdk1.4.2_06\bin;.;C:\WINNT\system32;C:\WINNT; |
SystemUtils.JAVA_RUNTIME_NAME | Java(TM) 2 Runtime Environment, Standard Edition |
SystemUtils.JAVA_RUNTIME_VERSION | 1.4.2_06-b03 |
SystemUtils.JAVA_SPECIFICATION_NAME | Java Platform API Specification |
SystemUtils.JAVA_SPECIFICATION_VENDOR | Sun Microsystems Inc. |
SystemUtils.JAVA_SPECIFICATION_VERSION | 1.4 |
SystemUtils.JAVA_VENDOR | Sun Microsystems Inc. |
SystemUtils.JAVA_VENDOR_URL | http://java.sun.com/ |
SystemUtils.JAVA_VERSION | 1.4.2_06 |
SystemUtils.JAVA_VM_INFO | mixed mode |
SystemUtils.JAVA_VM_NAME | Java HotSpot(TM) Client VM |
SystemUtils.JAVA_VM_SPECIFICATION_NAME | Java Virtual Machine Specification |
SystemUtils.JAVA_VM_SPECIFICATION_VENDOR | Sun Microsystems Inc. |
SystemUtils.JAVA_VM_SPECIFICATION_VERSION | 1.0 |
SystemUtils.JAVA_VM_VENDOR | Sun Microsystems Inc. |
SystemUtils.JAVA_VM_VERSION | 1.4.2_06-b03 |
SystemUtils.LINE_SEPARATOR | |
SystemUtils.OS_ARCH | x86 |
SystemUtils.OS_NAME | Windows 2000 |
SystemUtils.OS_VERSION | 5.0 |
SystemUtils.PATH_SEPARATOR | ; |
SystemUtils.USER_COUNTRY | KR |
SystemUtils.USER_DIR | C:\Tomcat 4.1 |
SystemUtils.USER_HOME | C:\Documents and Settings\kitty1 |
SystemUtils.USER_LANGUAGE | ko |
SystemUtils.USER_NAME | kitty1 |
JAVA_VERSION_FLOAT | 1.42 |
JAVA_VERSION_INT | 142 |
IS_JAVA_1_1 | false |
IS_JAVA_1_2 | false |
IS_JAVA_1_3 | false |
IS_JAVA_1_4 | true |
IS_JAVA_1_5 | false |
IS_OS_AIX | false |
IS_OS_HP_UX | false |
IS_OS_IRIX | false |
IS_OS_LINUX | false |
IS_OS_MAC | false |
IS_OS_MAC_OSX | false |
IS_OS_OS2 | false |
IS_OS_SOLARIS | false |
IS_OS_SUN_OS | false |
IS_OS_WINDOWS | true |
IS_OS_WINDOWS_2000 | true |
IS_OS_WINDOWS_95 | false |
IS_OS_WINDOWS_98 | false |
IS_OS_WINDOWS_ME | false |
IS_OS_WINDOWS_NT | false |
IS_OS_WINDOWS_XP | false |
위의 결과값을 보니 너무 유용하게 사용되겠죠? ^^
<PRE></PRE>Commons-Lang
IV. org.apache.commons.lang.StringUtils
java api의 String을 보면 문자열 처리하기에는 제공하는 기능들이 너무 빈약합니다.
그래서 프로그래머들은 자기 나름데로의 독특한 Utils를 만들어 사용하지요.
하지만 Commons-lang에서 제공하는 StringUtils를 사용한다면 더이상 자신만의 Utils를 사용할 필요가 없습니다.
여기 모두 ㄷ ㅏ ~ 있기 때문이지요 ^^
한가지 더 장점이 있다면 String의 null 값때문에 더이상 NullPointerException을 생각하지 않아도 된다는 것입니다.
StringUtils에서 ㄷ ㅏ ~ 알아서 해주기 때문입니다.
그럼 어떠한 기능들의 함수가 있는지 알아봅시다
반환값 | 함수명 | 파라미터 |
String | abbreviate | String str, int maxWidth |
"…"를 포함한 지정한 사이즈로 문자열을 축소한다 maxWidth은 4보다 커야한다 | ||
String | abbreviate | String str, int offset, int maxWidth |
"…"를 포함한 지정한 사이즈로 문자열을 앞/뒤로 축소한다 offset은 7보다 커야한다 | ||
String | capitalise | String str |
deprecated | ||
String | capitaliseAllWords | String str |
deprecated | ||
String | capitalize | String str |
문자열중 첫번째 문자를 대문자로 만든다 | ||
String | center | String str, int size |
str의 길이가 size가 되도록 문자열 좌우에 공백문자를 하나씩 추가한다 (우측부터 시작한다) | ||
String | center | String str, int size, char padChar |
str의 길이가 size가 되도록 문자열 좌우에 padChar를 하나씩 추가한다 (우측부터 시작한다) | ||
String | center | String str, int size, String padStr |
str의 길이가 size가 되도록 문자열 좌우에 padStr을 하나씩 추가한다 (우측부터 시작한다) | ||
String | chomp | String str |
문자열 맨 끝에있는 '\n' , '\r', '\r\n'을 제거한다 | ||
String | chomp | String str, String separator |
문자열 맨 끝에 separator가 있으면 이를 제거한다 | ||
String | chompLast | String str |
deprecated | ||
String | chompLast | String str, String sep |
deprecated | ||
String | chop | String str |
문자열 맨 끝에있는 문자 하나를 제거한다 | ||
String | chopNewline | String str |
deprecated | ||
String | clean | String str |
deprecated | ||
String | concatenate | Object array[] |
deprecated | ||
boolean | contains | String str, char searchChar |
str이 searchChar를 포함하고 있으면 true | ||
boolean | contains | String str, String searchStr |
str이 searchStr을 포함하고 있으면 true | ||
boolean | containsNone | String str, char invalidChars[] |
str이 invalidChars의 각 문자를 모두 포함하고 있지 않으면 true | ||
boolean | containsNone | String str, String invalidChars |
str이 invalidChars를 모두 포함하고 있지 않으면 true | ||
boolean | containsOnly | String str, char valid[] |
str이 valid의 각 문자들만 포함하고 있어야 true | ||
boolean | containsOnly | String str, String validChars |
str이 validChars 들만을 포함하고 있어야 true | ||
int | countMatches | String str, String sub |
str중에 sub가 포함되어있는 갯수를 반환한다 | ||
String | defaultString | String str |
str이 null이면 ""를 반환하고 아니면 str을 반환한다 | ||
String | defaultString | String str, String defaultStr |
str이 null이면 defaultStr을 반환하고 아니면 str을 반환한다 | ||
String | deleteSpaces | String str |
deprecated | ||
String | deleteWhitespace | String str |
문자열중 공백문자가 있으면 모두 제거한다 | ||
String | difference | String str1, String str2 |
str1과 str2를 비교하여 다른부분을 반환한다 (str2의 부분을 반환) | ||
boolean | equals | String str1, String str2 |
str1이 null이면 str2가 null인지 유무를 반환하고 str1이 null이 아니면 str1과 str2의 equals를 반환 | ||
boolean | equalsIgnoreCase | String str1, String str2 |
equals와 동일하며 대소문자를 무시하고 비교한다 | ||
String | escape | String str |
deprecated | ||
String | getChomp | String str, String sep |
deprecated | ||
String | getNestedString | String str, String tag |
deprecated | ||
String | getNestedString | String str, String open, String close |
deprecated | ||
String | getPrechomp | String str, String sep |
deprecated | ||
int | indexOf | String str, char searchChar |
str에서 첫번째 searchChar의 인덱스를 반환한다 | ||
int | indexOf | String str, char searchChar, int startPos |
str의 startPos 인덱스부터 첫번째 searchChar의 인덱스를 반환한다 | ||
int | indexOf | String str, String searchStr |
str에서 첫번째 searchStr의 인덱스를 반환한다 | ||
int | indexOf | String str, String searchStr, int startPos |
str의 startPos 인덱스로부터 첫번째 searchStr의 인덱스를 반환한다 | ||
int | indexOfAny | String str, char searchChars[] |
str에서 searchChars중 포함하고 있는 문자의 첫번째 인덱스를 반환한다 | ||
int | indexOfAny | String str String searchChars |
str에서 searchChars중 포함하고 있는 문자열의 첫번째 인덱스를 반환한다 | ||
int | indexOfAny | String str, String searchStrs[] |
str에서 searchStr중 포함하고 잇는 문자열의 첫번째 인덱스를 반환한다 | ||
int | indexOfAnyBut | String str char searchChars[] |
str에서 searchChars중 포함되지 않은 문자 첫번째 인덱스를 반환한다 | ||
int | indexOfAnyBut | String str, String searchChars |
str에서 searchChars중 포함되지 않은 문자 첫번째 인덱스를 반환한다 | ||
int | indexOfDifference | String str1, String str2 |
str1과 str2를 비교하여 문자열이 틀려지기 시작하는 인덱스를 반환한다 | ||
boolean | isAlpha | String str |
문자열이 모두 Character.isLetter 이면 true (모두 문자이면 true) | ||
boolean | isAlphanumeric | String str |
문자열이 모두 Character.isLetterOrDigit 이면 true (문자거나 숫자이면 true) | ||
boolean | isAlphanumericSpace | String str |
문자열이 모두 Character.isLetterOrDigit 이거나 공백이면 true | ||
boolean | isAlphaSpace | String str |
문자열이 모두 Character.isLetter 이거나 공백문자이면 true | ||
boolean | isBlank | String str |
문자열이 공백문자이거나 길이가 0이거나 null인경우 true | ||
boolean | isEmpty | String str |
문자열이 길이가 0이거나 null인경우 true | ||
boolean | isNotBlank | String str |
문자열이 공백문자도 아니고 길이가 0도 아니고 null도 아니면 true | ||
boolean | isNotEmpty | String str |
문자열이 길이가 0이 아니고 null도 아니면 true | ||
boolean | isNumeric | String str |
문자열이 모두 Character.isDigit 이면 true (모두 숫자이면 true) | ||
boolean | isNumericSpace | String str |
문자열이 모두 Character.isDigit 이거나 공백문자이면 true | ||
boolean | isWhitespace | String str |
문자열이 모두 Character.isWhitespace 이면 true (모두 공백이면 true) | ||
String | join | Object array[] |
array에서 문자열을 읽어와 모두 연결시킨다 | ||
String | join | Object array[], char separator |
array에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
String | join | Object array[], String separator |
array에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
String | join | Iterator iterator, char separator |
iterator에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
String | join | Iterator iterator, String separator |
iterator에서 문자열을 읽어와 separator를 구분자로 연결시킨다 | ||
int | lastIndexOf | String str, char searchChar |
str에서 마지막 searchChar의 인덱스를 반환한다 | ||
int | lastIndexOf | String str, char searchChar, int startPos |
str의 startPos 인덱스부터 마지막 searchChar의 인덱스를 반환한다 | ||
int | lastIndexOf | String str, String searchStr |
str에서 마지막 searchStr의 인덱스를 반환한다 | ||
int | lastIndexOf | String str, String searchStr, int startPos |
str의 startPos 인덱스부터 마지막 searchStr의 인덱스를 반환한다 | ||
int | lastIndexOfAny | String str, String searchStrs[] |
str에서 searchStr의 문자열들중 포함하고 있는 문자열의 마지막 인덱스를 반환한다 | ||
String | left | String str, int len |
str의 좌측에서 len 길이만큼 문자열을 구한다 | ||
String | leftPad | String str, int size |
str의 길이가 size가 되도록 문자열 왼쪽에 ' '을 추가한다 | ||
String | leftPad | String str, int size, char padChar |
str의 길이가 size가 되도록 문자열 왼쪽에 padChar를 추가한다 | ||
String | leftPad | String str, int size, String padStr |
str의 길이가 size가 되도록 문자열 왼쪽에 padStr을 추가한다 | ||
String | lowerCase | String str |
str을 소문자로 변환한다 | ||
String | mid | String str, int pos, int len |
str의 pos 인덱스부터 len 길이만큼의 문자열을 구한다 | ||
String | overlay | String str, String overlay, int start, int end |
str의 start부터 end까지overlay로 변환한다 | ||
String | overlayString | String text, String overlay, int start, int end |
deprecated | ||
String | prechomp | String str, String sep |
deprecated | ||
String | repeat | String str, int repeat |
str을 repeat만큼 반복하여 반환한다 | ||
String | replace | String text, String repl, String width |
text에서 모든 repl을 width로 변환한다 | ||
String | replace | String text, String repl, String width, int max |
text에서 모든 repl을 width로 변환하는데 최대 max개만큼 변환한다 | ||
String | replaceChars | String str, char searchChar, char replaceChar |
str에서 searchChar를 replaceChar로 모두 변환한다 | ||
String | replaceChars | String str, String searchChars, String replaceChars |
str에서 searchChars를 replaceChars로 모두 변환한다 | ||
String | replaceOne | String text, String repl, String width |
text에서 repl를 width로 변환하는데 첫번째 하나만 변환한다 | ||
String | reverse | String str |
문자열을 앞뒤 순서를 바꾼다 | ||
String | reverseDelimited | String str, char separatorChar |
separatorChar를 구분으로 문자열을 나눈 후 나눠진 단어들을 역순으로 바꾼다 | ||
String | reverseDelimitedString | String str, String separatorChars |
deprecated | ||
String | right | String str, int len |
str의 len길이만큼 우측에서 문자열을 구한다 | ||
String | rightPad | String str, int size |
str의 길이가 size가 되도록 문자열 오른쪽에 ' '을 추가한다 | ||
String | rightPad | String str, int size, char padChar |
str의 길이가 size가 되도록 문자열 오른쪽에 padChar를 추가한다 | ||
String | rightPad | String str, int size, String padStr |
str의 길이가 size가 되도록 문자열 오른쪽에 padStr을 추가한다 | ||
String[] | split | String str |
공백문자를 구분자로 사용하여 분리한다 | ||
String[] | split | String str, char separatorChar |
separatorChar를 구분자로 사용하여 분리한다 | ||
String[] | split | String str, String separatorChars |
separatorChars를 구분자로 사용하여 분리한다 | ||
String[] | split | String str, String seperatorChars, int max |
separatorChars를 구분자로 사용하여 분리한며 최대 max개 만큼한다. 배열의 크기는 max가 된다 | ||
String | strip | String str |
문자열 좌우에 있는 공백문자를 제거한다 trim과 동일하다 | ||
String | strip | String str, String stripChars |
문자열 좌우에 stripChars에 존재하는 문자를 제거한다 | ||
String[] | stripAll | String strs[] |
배열에 있는 모든 문자열 좌우에 있는 공백문자를 제거한다 | ||
String[] | stripAll | String strs[], String stripChars |
배열에 있는 모든 문자열 좌우에 stripChars에 존재하는 문자를 제거한다 | ||
String | stripEnd | String str, String stripChars |
문자열 우측에만 strip 한다 | ||
String | stripStart | String str, String stripChars |
문자열 좌측에만 strip 한다 | ||
String | stripToEmpty | String str |
str이 null이면 ""를 반환하고 아니면 strip 한다 | ||
String | stripToNull | String str |
str이 null이면 null을 반환하고 아니면 strip 한다 | ||
String | substring | String str, int start |
str의 start 인덱스부터 문자열을 구한다 | ||
String | substring | String str, int start, int end |
str의 start 부터 end 인덱스 까지 문자열을 구한다 | ||
String | substringAfter | String str, String separator |
str의 처음 separator 부분부터 문자열을 구한다 | ||
String | substringAfterLast | String str, String separator |
str의 마지막 separator부분부터 문자열을 구한다 | ||
String | substringBefore | String str, String separator |
str의 처음 separator 부분까지 문자열을 구한다 | ||
String | substringBeforeLast | String str, String separator |
str의 마지막 separator부분까지 문자열을 구한다 | ||
String | substringBetween | String str, String tag |
str에서 tag 사이에 있는 문자열을 구한다 | ||
String | substringBetween | String str, String open, String close |
str에서 open부터 close 까지 사이에 있는 문자열을 구한다 | ||
String | swapCase | String str |
대문자는 소문자로 변환하고 소문자는 대문자로 변환한다 | ||
String | trimToNull | String str |
str이 null이거나 length가 0이면 null을 반환하고 그렇지 않으면 좌우 공백문자를 제거한다 | ||
String | trim | String str |
문자열 좌우 공백문자를 제거한다 | ||
String | trimToEmpty | String str |
str이 null이면 ""를 반환하고 그렇지 않으면 좌우 공백문자를 제거한다 | ||
String | uncapitalise | String str |
deprecated | ||
String | uncapitalize | String str |
문자열의 첫문자를 소문자로 변환한다 | ||
String | upperCase | String str |
str을 대문자로 변환한다 |
사용법
모두 static 함수이기때문에 다음과 같이 사용하면 됩니다.
String text = StringUtils.replace(str, repl, width);
=============================================
본문서는 자유롭게 배포/복사 할수 있지만
이문서의 저자에 대한 언급을 삭제하시면 안됩니다
저자 : GoodBug (unicorn@jakartaproject.com)
최초 : http://www.jakartaproject.com
=============================================
[출처] Apache Commons Lang 2번째 (자바(java)초보스터디) |작성자 너는모니
-----------------------------------------------------------------------------
Lang Downloads
We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directories. Recent releases (48 hours) may not yet be available from the mirrors.
You are currently using http://mirror.khlug.org/apache. If you encounter a problem with this mirror, please select another mirror. If all mirrors are failing, there are backup mirrors (at the end of the mirrors list) that should be available.
The KEYS
link links to the code signing keys used to sign the product. The PGP
link downloads the OpenPGP compatible signature from our main site. The MD5
link downloads the checksum from the main site.
For more information concerning Lang, see the Lang site.
-
Binary
-
Source
- browse download area
- archives...