2013-10-29 2 views
-1

저는 비교적 새로운 Linux 명령 줄에서 모든 것을 실행하려고합니다. 그것은 단지 경고입니다명령 줄에서 컴파일 문제가 발생했습니다.

내가 어떤 외부 라이브러리를 사용하는 클래스를 컴파일하려고하고 내가 javac의의 classname.java을 수행 할 때 내가 경고를 얻을 ....

It is recommended that the compiler be upgraded. 
warning: /opt/pi4j/lib/pi4j-core.jar(com/pi4j/io/gpio/GpioPinOutput.class): major version 51 is newer than 50, the highest major version supported by this compiler. 

에도 불구하고 - 나는에 시도 내가

javac -target 1.6 ControlGpioExample.java 
01을 통해 시도 - 다음

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/pi4j/io/gpio/GpioFactory : Unsupported major.minor version 51.0 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
    at ControlGpioExample.main(ControlGpioExample.java:9) 

I에 유래 검색 및 크로스 컴파일을 사용하도록 제안 게시물을 발견 결과 클래스 파일에 자바를 실행

사용할 대상을 어떻게 알 수 있습니까? 나는 그것이 작동 할 때까지 모든 것을 계속 지키고 있니?!

감사

+0

심각한 질문에 대한 downvote? 나 자신을 시도, 내가 stackoverflow 검색 후 모든 일을 게시 – Biscuit128

+0

당신은 중복을 찾지 못했다면 당신은 충분히 검색하지 않았다 :) –

+0

그래서 내가 투표를 내려 ... 화려한 – Biscuit128

답변

2

그것은 문제의 당신이 를 컴파일하고있는 코드가 아닙니다 - 그것은 당신이에 대한 를 컴파일하고있는 코드의 자바 7에 내장 된 것으로 나타납니다 pi4j-core.jar를,에

기본적으로 JDK를 업그레이드하는 것이 좋습니다. 어느 쪽이든, 또는 :

  • 자바로 만들어진 pi4j의 버전을 찾기 6
  • 당신은을 사용하여 코드를 컴파일 자바 6 (버전 50)를 사용하는 자신에게 그것을
+0

JDK를 원하셨습니까? JRE는'javac '과 함께 제공되지 않습니다. :) –

+0

@VivinPaliath : 둘 다, 정말 :) –

0

재 구축 라이브러리는 Java 7 (버전 51)으로 컴파일되었습니다. 컴파일러를 업그레이드하거나 Java 6로 컴파일 된 pi4j 버전을 찾으십시오. JDK7로 업그레이드하는 것이 가장 좋은 방법입니다.

참조로 여기에 버전 번호이며, 그들에 대응하는 것 :

  • J2SE 7 = 51
  • J2SE 6.0 = 50
  • J2SE 5.0 = 49
  • JDK 1.4 = 48
  • JDK 1.3 = 47
  • JDK 1.2 = 46
  • JDK 1.1 = 45
0

빌드 요구 사항 pi4j (pi4j-native)를 살펴보십시오. 내가

  • here에서 GCC 4.6.3 이상 (sudo는 apt-get을 설치 GCC)
  • 자식 코어 (sudo는 apt-get을 설치 자식 코어)
  • 실제로 동작하는 JDK (오픈 JDK 그들을했다 또는 Oracle JDK) (sudo apt-get install openjdk-7-jdk)
  • 유효하게 정의 된 JAVA_HOME 환경 변수
  • wiringPi 소스 및 플랫폼 컴파일 된 바이너리다른 답변이 이미 제안으로)

그래서, 그것은 JDK로 업그레이드하는 가장 좋은 것입니다 7. 기본적으로

는 JDK7에서 사용할 수있는 일부 기능을 사용할 수 있습니다 pi4j는 현재의 JDK6 기반 컴파일러 수 없다는 것을 다루다.

0

이 문제는 Java 코드를 상위 버전 JDK로 컴파일하고 하위 버전 JDK로 실행하려고 할 때 발생합니다. 어떤 Java 버전을 사용하고 있는지 알고 계십니까?

관련 문제