본문 바로가기

java

get resouce from classloader 주의할점 ClassLoader classLoader = this.getClass().getClassLoader();String filePath = classLoader.getResource("/sample.txt").getPath(); 이런식으로 classpath 경로에 있는 파일을 가져오도록 코드를 짰는데,로컬에서는 잘 되지만 개발 서버에 올리니까 파일이 없다고 에러가 났다.이걸 어찌하나.. 해서 검색해보니 여러 방법이 있었는데 다 실패하고.. File file = ResourceUtils.getFile("classpath:config/sample.txt") 이 방법으로 성공했다.ResourceUtils 클래스는 org.springframework.util 패키지에 있는 클래스인데..getFile 메소드 안을 .. 더보기
소켓 프로그래밍 실습 갑자기 채팅 프로그램을 짜보고 싶어서, 유투브 보면서 소스 따라하기가 의외로 재미 있어서 놀람. Serverpackage chat1; import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.IOException;import java.net.ServerSocket;import java.net.Socket; public class ServerTest {private ServerSocket serverSocket;private Socket clientSocket;private DataInputStream dataInputStream;private DataOutputStream dataOutputStream;public void.. 더보기
프로그래밍은 참 어렵다. 기존에 double 형 변수로 처리하는 로직이 있었는데,처음엔 별 생각 없이 값이 없는 경우 null이 아닌 9999999 같은 쓰레기값(?)을 줘서 사용했다.실제 데이터는 저 범위까지 갈 일이 없었으므로...근데 이게 명백히 따지면 잘못된 로직이지.null이 아닌 쓰레기값이 들어가 있었으니.. 그래서 double 형 변수에 어떻게 null을 할당할까 찾아보니 랩퍼 클래스를 사용하면 된다더군. double a = null; //impossiblejava.lang.Double a = null; //possible https://stackoverflow.com/questions/11047276/null-for-primitive-data-types 생각해보면 처음 공부할때 다 배우는 내용들인데.. 이래서 기초.. 더보기
apache commons exec 을 이용한 java에서 linux script 실행 보통 linux 쓰면 인터넷 연결된 경우 시간을 알아서 동기화한다.그런데 이 케이스에서는 인터넷 연결이 안 돼서 시간설정을 수동으로밖에 할 수 없는 상황이었다. 일단 시간 설정을 하려면 root 계정으로date -s "2017-01-18 13:00:00"이렇게 입력하면 된다. 내가 생각한건, 1. jsp에서 javascript new Date()로 클라이언트 시간을 가져옴2. 그 시간으로 리눅스 시간 셋팅 요거였고, 여기서 문제가 된건 2번.. java에서 linux 명령어를 입력할 수 가 있나? 하는 것이었다.찾아보니 아파치에서 만든게 있더라. 스프링 기반 웹프로젝트이고, 메이븐을 사용했으므로 일단 pom.xml에 아래와 같이 추가 org.apache.commons commons-exec 1.1 그리고.. 더보기