본문 바로가기

Development/Java

[Gradle] Test 제외하고 Build하기 gradle build -x test 출처 : https://stackoverflow.com/questions/4597850/gradle-build-without-tests
공백(xA0)을 정규표현식으로 찾는 방법 Javascript에서는 정규표현식 \s을 사용하면 \20공백 말고 xA0공백도 찾아주지만 Java에서는 찾아주지 않는다. 기본적으로 정규표현식은 스펙이기 때문에 각 언어에서 자체적으로 구현한다. 그러다보니 언어마다 정규표현식이 조금씩 다를 수 있다. 여튼 Java에서 xA0공백을 찾으려면 어떻게 하면 좋을까? 그냥 추가해주면 된다. 이렇게. [\s\xA0]이렇게 쓰면 32공백도 찾고 160공백도 찾을 수 있다.
ojdbc를 통해 SESSIONTIMEZONE 사용할 때 문제( feat. timezone 에러 ) 거지같은 에러가 발생했다. Local 환경에서 ojdbc를 사용하여 SESSIONTIMEZONE을 가져오면 Timezone값을 정상적으로 가져오는데 반해, Server 환경에서 SESSIONTIMEZONE을 가져오면 +9가 아닌 0값을 가져오는 문제가 발생했다. 결론부터 얘기하자면, 사용하는 ojdbc14.jar 파일의 버전이 달랐던 것. 서버 환경에서는 9.0.2.0.0 버전의 ojdbc14.jar 파일이 설치되어 사용되었고 로컬 환경에서는 10.2.0.5.0 버전을 사용 중에 있었다. SESSIONTIMEZONE 함수를 사용하려면 9.x 버전 말고 10.x대 이상의 버전을 사용해야 할 것이다.어떤 식으로 문제가 발생하냐면.. 다음과 같은 코드를 9.x대의 ojdbc를 사용할 때, 10.x대의 ojdb..
[Error] Invalid byte 1 of 1-byte UTF-8 sequence. Error:Invalid byte 1 of 1-byte UTF-8 sequence. Solution:Text File Encoding이 UTF-8인 XML 파일에서 한글을 사용하면 나오는 문제.한글을 지우던지 Validation 체크를 없애면 됨. 아니면 확실하진 않지만 EUC-KR으로 변경하면 될 듯.
[Error] The method getTextContent() is undefined for the type Node Error:The method getTextContent() is undefined for the type Node Solution:다른 버전의 org.w3c.dom.Node를 사용하여 나오는 문제.JRE System Library를 다른 라이브러리들보다 우선순위를 위로 올리면 된다. 그러면 해당 클래스를 우선순위가 높은 JRE에 있는 파일로 사용할 것이다.
Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet. Problem :Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet. ProjectName Unknown Faceted Project Problem (Java Version Mismatch) Solution :Eclipse에서 종종 볼 수 있는 에러 중 하나. Eclipse에서 보통 Java Compiler 옵션을 바꾸고 Project Facets에서 Java Version을 안 바꿔서 에러가 발생한다. 바꿔준 Java Compiler 버전과 Project Facets에 있는 Java 버전을 맞춰주면 에러가 없어질 것이다.
JDBC Statement, PreparedStatement, CallableStatement 차이 InterfacesRecommended UseStatementUse for general-purpose access to your database. Useful when you are using static SQL statements at runtime. The Statement interface cannot accept parameters.PreparedStatementUse when you plan to use the SQL statements many times. The PreparedStatement interface accepts input parameters at runtime.CallableStatementUse when you want to access database stored proc..
[iBatis] Delete statements cannot be executed as a query. Delete statements cannot be executed as a query.라는 에러는 간단한 문제이다. 왜냐면 단순 실수에 의한 에러이기 때문.Delete Query를 사용하는데 Java에서 update 메소드를 사용해서 이런 에러가 발생한다.update 메소드를 사용하지 말고 delete 메소드를 사용하면 된다.
Non-terminating decimal expansion; no exact representable decimal result. java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 소수점 몇 자리까지 계산할 건지를 정해줘야 한다. 왜냐면 10을 3으로 나누면 3.333333333333.... 와 같이 값이 끝없이 나오기 때문에 정해서 잘라줘야 한다. 안 그러면 위와 같은 에러가 발생할 것이다. 방법은 아래와 같다. BigDecimal a = new BigDecimal( "1.0" ); BigDecimal b = new BigDecimal( "0.3" ); //6자리까지 계산하겠다는 옵션. 다른 옵션은 다른 사이트을 참조. BigDecimal c = a.divide( b, MathContext.DE..
[OSX,SWT] Error Display must be created on main thread due to Cocoa restrictions. 문제:***WARNING: Display must be created on main thread due to Cocoa restrictions. Exception in thread "main" org.eclipse.swt.SWTException: Invalid thread access at org.eclipse.swt.SWT.error(SWT.java:4361) at org.eclipse.swt.SWT.error(SWT.java:4276) at org.eclipse.swt.SWT.error(SWT.java:4247) at org.eclipse.swt.widgets.Display.error(Display.java:1068) at org.eclipse.swt.widgets.Display.createDispl..
PSD 포토샵 파일 Parser http://blog.alternativaplatform.com/en/2007/07/09/parser-psd-formata/ PSDParser parser = new PSDParser(new FileInputStream("image.psd")); PSDLayerAndMask layerAndMask = parser.getLayerAndMask(); List layers = layerAndMask.getLayers(); List images = layerAndMask.getImageLayers(); int i = 0; for (PSDLayerStructure layer : layers) { PSDLayerPixelData pixelData = images.get(i); BufferedImage image =..
java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter Problem.Caused by: java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visit.(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V Answer.CGLib의 버전과 ASM의 버전이 맞지 않아서 발생하는 문제.