모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    하린님의
    개인페이지입니다
    가입 : 13-01-04
    방문 : 2297회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_21188
    작성자 : 하린
    추천 : 0
    조회수 : 400
    IP : 1.212.***.147
    댓글 : 0개
    등록시간 : 2017/08/07 21:29:56
    http://todayhumor.com/?programmer_21188 모바일
    java spring 기반으로 web compiler를 만들고 있습니다.
    옵션
    • 본인삭제금지
    tryHelloword를 참고한 웹 컴파일러를 만들어보고 있습니다.
    동작은 다음과 같습니다.
    1. DB에 저장되어 있는 문제를 불러와서 View에 보여줍니다.
    2. 이용자가 문제를 풀고 실행을 누르면 controller에서 해당 소스와 클래스이름으로 .java 파일을 만듭니다. (성공)
    3. 여기서 컴파일 하여 .class 파일로 만든 뒤 newInstance()로 인스턴스화 시킵니다. (반은 성공...?)

    허나, 문제가 .java 파일을 만드는 것이 1개일 경우 정상작동을 하지만
    2개일 경우 하나의 파일을 생성 후 컴파일 -> newInstance()를 하는 과정에서 
    java.lang.IllegalStateException 에러가 발생합니다.

    다만, spring 환경이 아닌 일반 java 환경에서 같은 소스를 돌릴 경우 정상작동을 합니다만...
    아무래도 spring의 controller에서 인스턴스화를 2개 이상 진행할 경우에 문제가 발생하는 듯 합니다. 

    이런 경우에는 어떤 방법을 사용해야 될까요? 자문을 구해봅니다.


    public Object questionBankResult(
    String filePath, String currProblemNum,
    @RequestParam(value="dataSourceArr[]") String[] dataSourceArr,
    @RequestParam(value="dataNameArr[]") String[] dataNameArr) throws Exception{
    String path = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath();  //classpath 경로 
    questFiles += filePath;   //jsp에서 ajax로 전송한 파일 경로
    // 디렉토리 생성
    File saveFolder = new File(path + questFiles) ;
    if(!saveFolder.exists()){
    saveFolder.mkdirs();
    }

    //dataSourceArr : 소스가 들어있는 배열
      //dataNameArr : 소스의 클래스명이 들어있는 배열 

    for(int i=0; i<dataNameArr.length; i++){ 
    // 내용이 없는 경우에는 파일 생성 및 컴파일을 하지 않는다.
    if(dataNameArr[i].length() != 0){
    String saveName = dataNameArr[i] + ".java";

    //클래스명으로 .java 파일 생성 
    File file = new File(saveFolder, saveName);
    file.createNewFile();

    //.java 파일에 내용 삽입
    FileWriter fw = new FileWriter(file);
    fw.write(dataSourceArr[i]);
    fw.flush();
    fw.close();
    // 만들어진 Java 파일을 컴파일
    JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
    compiler.run(null, System.out, System.out, file.getPath());
    //인스턴스화 
    String classForName = questFiles + dataNameArr[i];
    Class cls = Class.forName(classForName.replace("/", "."));
    Object obj = cls.newInstance();
    }
    }
            return null;
    };

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    41
    통영 여행 코스 추천해주세요! 본인삭제금지 하린 17/12/22 19:46 26 0
    40
    [mysql] select할때 count사용시 구문 에러 발생.. [8] 본인삭제금지 하린 17/11/11 21:39 70 0
    39
    invoke()로 메서드 실행시 실행한 내역이 메모리에 남나요? [3] 본인삭제금지 하린 17/08/08 23:32 24 0
    38
    어제 올렸던 웹 컴파일러 구현 미약하게나마 해결되었습니다. [1] 하린 17/08/08 20:36 53 0
    java spring 기반으로 web compiler를 만들고 있습니다. 본인삭제금지 하린 17/08/07 21:29 43 0
    36
    컴퓨터의 화면을 서로 공유할 수 있는 방법이 무엇이 있을까요? [14] 본인삭제금지 하린 17/07/17 22:46 61 0
    35
    웹 컴파일러를 구현해보려고 합니다. [7] 본인삭제금지 하린 17/07/16 14:40 98 0
    34
    대전 잠만보 출현 [3] 하린 17/02/03 14:38 329 0
    33
    대전 리자몽 출현 하린 17/02/02 20:31 309 0
    32
    아이폰에서 유투브 사용시 재생속도 변경 불가능한가요? [1] 본인삭제금지 하린 17/01/31 01:07 25 0
    31
    식스테일 잡았어요 으헝헝 ㅠ [2] 하린 17/01/25 21:24 223 3
    30
    자바 이클립스 다운에 대해서 질문 있습니다. [3] 하린 17/01/18 22:54 22 0
    29
    C++ 불완전 클래스 선언 이후 ... [2] 외부펌금지 하린 16/11/13 23:57 36 0
    28
    저번에 파라로 하다가 죽었는데 [2] 하린 16/09/07 08:49 107 0
    27
    포즈 스켈레톤 시리즈 중에서 [1] 하린 16/05/10 21:28 41 0
    26
    구버전 닌텐도를 구하게 됫는데 [2] 하린 16/01/24 12:19 27 0
    25
    tChart에서 series가 1개일때의 Title설정 하린 16/01/11 15:42 13 0
    24
    c# tchart series 추가시 그래프 출력 [3] 하린 16/01/07 01:51 17 0
    23
    [C#] bar 그래프 선언 여러개 할 경우 [5] 하린 16/01/06 15:30 18 0
    22
    [C#]리스트 중복 제거 [5] 하린 16/01/05 22:12 26 0
    21
    [C#]tchart series 생성 .. [11] 하린 16/01/05 11:58 25 0
    20
    [C#]콤보박스안의 아이템에 체크박스로 하는 법 [4] 하린 16/01/03 14:59 35 1
    19
    [C#] 그래프 그리는 소스가 많아서 따로 함수로 만들어 사용... [3] 하린 15/12/29 17:48 43 0
    18
    Splitcontainer으로 분할 한 뒤 contextMenuStrip [3] 하린 15/12/28 17:09 18 0
    17
    너무 많은 for문과 if문.... 해결 방법 없을까요 ? [21] 하린 15/12/24 14:35 62 0
    16
    [C#] for문이 왜 안돌아가는지 의문입니다.. [7] 하린 15/12/23 17:32 40 0
    15
    C# DataGrirw 셀 합치기 [4] 하린 15/12/23 13:45 26 0
    14
    linq join문에서 조건문 사용 이렇게 쓰는거 맞나요 ? [4] 하린 15/12/22 20:09 16 0
    13
    [C#]group이 되질 않는건지 소스를 잘못 사용한건지.. 조언부탁드려 [3] 하린 15/12/22 13:27 32 0
    12
    트리뷰 체크박스를 구성하고 있습니다. [3] 하린 15/12/20 19:40 21 0
    [1] [2]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈