2016년 8월 26일 금요일

Java 실행 오류 관련..

1. 컴파일시 한글 때문에 오류 날때.

javac -encoding UTF-8 파일이름.java   

이렇게 하면 컴파일시 한글 오류를 잡을 수 있다.


2. '기본클래스를 찾거나 로드 할 수 없습니다.' 라는 메세지가 뜰 때:

package내에서 작성된 class 파일을 실행시키는 경우에는 

java 패키지명.파일명

으로 실행해야 되는데 실행 할 때 클래스 파일이 있는 상위 폴더 에서 실행해야 된다.

이렇게 패키지 폴더가 보이는 위치에서 실행하면 되겠다.
만약 이렇게 해도 실행이 되지 않는다면 환경변수 설정에서 CLASSPATH를 설정해 주면 된다. CLASSPATH 설정시 변수로 .(점)을 찍어줘야 실행이 된다. 

이런 식으로 환경 변수를 추가해주면 되는 데 .(점)이 없다면 꼭 .(점)을 추가해주세요
 아래 java위치는 본인 컴퓨터에 맞춰 설정 하시면 됩니다.
3. java.security.AccessControlException access denied 처리법

JApplet에서 파일 읽기/쓰기 관련 에러였는데 보안문제이다.
java.policy의 보안을 손 봐야 된다.
본인 컴퓨터에 자바가 설치된 폴더(편의상 C 드라이브로 설정했습니다)

C://Java/jdk1.8.1_*/lib/security/java.policy를 열어서

다음의 색칠된 부분을 추가해준다. (열때 MS-Word로 열면 된다.)

// Standard extensions get all permissions by default

grant codeBase "file:${{java.ext.dirs}}/*" {
permission java.security.AllPermission;
};

grant {
  permission java.io.FilePermission 
"<<ALL FILES>>", "read, write";

  permission java.net.SocketPermission 
"211.60.219.142:7778", "connect,resolve,listen,accept";
};

// default permissions granted to all domains

grant {
// Allows any thread to stop itself using the java.lang.Thread.stop()
// method that takes no argument.
// Note that this permission is granted by default only to remain
// backwards compatible.
// It is strongly recommended that you either remove this permission
// from this policy file or further restrict it to code sources
// that you specify, because Thread.stop() is potentially unsafe.
// See "http://java.sun.com/notes" for more information.
permission java.lang.RuntimePermission "stopThread";

// allows anyone to listen on un-privileged ports
permission java.net.SocketPermission "localhost:1024-", "listen";

// "standard" properies that can be read by anyone

permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";

permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read";

permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";

permission java.security.AllPermission;
};

저장 후 종료
....


댓글 없음: