2012-06-13 21 views
6

Kiedy zbudowałem Jikes RVM na Unbuntu, dostałem ten błąd. Dowolny pomysł?"Błąd: JAVA_HOME nie jest poprawnie zdefiniowany." w budowaniu Jikesa rvm

 
bin/buildit localhost production 
---> Config: production 
/bin/bash --login -c '/bin/bash --login -c " cd /home/jack/Programs/jikesrvm-3.1.2 && export JAVA_HOME=/opt/jdk1.6.0 && ant very-clean -Dhost.name=ia32-linux && ant check-components-properties -Dhost.name=ia32-linux -Dtarget.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache && ant -Dtarget.name=ia32-linux -Dconfig.name=production -Dhg.revision= -Dhost.name=ia32-linux -Dcomponents.cache.dir=/home/jack/.buildit_components_cache "' 
Error: JAVA_HOME is not defined correctly. 
    We cannot execute /opt/jdk1.6.0/bin/java 
Wed Jun 13 12:23:37 EDT 2012 
===================== Summary ===================== 
Local : /home/jack/Programs/jikesrvm-3.1.2 
Build : ubuntu:/home/jack/Programs/jikesrvm-3.1.2 
Target : ubuntu:/home/jack/Programs/jikesrvm-3.1.2 
Start : Wed Jun 13 12:23:37 EDT 2012 
Config : production [FAILED Wed Jun 13 12:23:37 EDT 2012] 
=================================================== 

OS:

Linux ubuntu 2.6.32-24-generiC#39-Ubuntu SMP Wed Jul 28 06:07:29 UTC 2010 i686 GNU/Linux

Zmienne środowiskowe: PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/java-6-sun-1.6.0.22/bin

JAVA_HOME

/usr/lib/jvm/java-6-sun-1.6.0.22

Sprawdziłem java w JAVA_HOME/bin katalogu, to działa. Bez względu na to, jak zmienię zmienne środowiskowe, błąd nadal narzekał "Nie możemy wykonać /opt/jdk1.6.0/bin/java". Wygląda na to, że nie zmieniłem właściwej "pozycji".

Jakaś wskazówka?

Dzięki!

Odpowiedz

7

uruchomieniu tego polecenia:

find . -exec grep "jdk1.6.0" {} \; 

Aby dowiedzieć się, który plik jest ustawienie JAVA_HOME do tej ścieżki.

+0

Cześć Rocky, wykonując polecenie, mam to: global.javahome.ia32-linux =/opt/jdk1.6.0 global.javahome.x86_64-linux =/opt/jdk1.6.0 Ale czym one są? Jak mogę je zmienić? Dzięki! – JackWM

+0

Niestety, powinieneś dodać opcję -l, aby zobaczyć plik, w którym jest zdefiniowany: find. -exec grep -l "jdk1.6.0" {} \; który wydrukuje nazwę pliku, a następnie edytuje ten plik. –

+0

Znajduję je. Są one w /bin/buildit.base_config. Po zmodyfikowaniu ich do prawdziwego JAVA_HOME błąd znika. Dzięki! – JackWM

0

To JRE, ale nie JDK. Zainstaluj JDK i ustaw dla niego JAVA_HOME.

+0

możesz podać przykład, jak to zrobić? –

+0

Masz na myśli przykład instalacji JDK? Po prostu weź to z repozytorium. JAVA_HOME można wyeksportować do powłoki jako zmiennej. –

3

Podczas budowania jikes możesz zbudować go za pomocą mrówki lub używając polecenia, którego używasz. Jeśli problem JAVA_HOME jest przyczyną kłopotów Użyj

bin/buildit localhost production -j"path to your jvm directory" 

-To jest obecny w "/usr/bin/jvm".

Inna metoda: istnieje bin/buildit.base_config, w którym konkretnie wymieniona jest ścieżka do JAVA_HOME. Więc pod „# Default JAVA_HOME values” można zmodyfikować odpowiednią lokalizację, na przykład,

global.javahome.ppc32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 
global.javahome.ppc64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 
global.javahome.ia32-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 
global.javahome.x86_64-linux=/usr/lib/jvm/java-6-sun-1.6.0.26 

Możesz wybrać, który chcesz użyć. Jeśli nie znasz swojej architektury, zmodyfikuj wszystko, a teraz możesz budować bez obawy o swoją ścieżkę do języka Java, która zostanie wyraźnie wymieniona. celu uzyskania bardziej szczegółowych informacji należy zapoznać this blog

Napisałem również mały artykuł o tym, jak można start to fiddle with Jikes

+0

@jackWM: Obecnie występuje błąd w jikes podczas budowania go z openjdk 7 i działa dobrze z wersją 6, więc używaj wersji 6. – Rorschach

-1

Można uzyskać ten błąd z powodu kilku powodów. Aby rozwiązać ten problem, wykonaj następujące czynności:

Najpierw znajdź lokalizację Java.Aby uzyskać listę zainstalowanych platform Java, uruchom następującą komendę z terminala:

$ sudo update-alternatives --config java 

teraz ustawić JAVA_HOME i ścieżki,

$ export JAVA_HOME=<java_home> 

$ export PATH=$JAVA_HOME/jre/bin:$PATH 

Tworzenie dowiązania

$ sudo ln -s <java_home>/jre <java_symlink_path> 

kiedy jako przykład:

$ sudo ln -s /usr/lib/jvm/java-6-sun-1.6.0.22/jre /opt/jdk1.6.0 

Powyższe polecenie utworzy lokalizację dowiązania symbolicznego, którą system próbuje znaleźć w Twoim problemie.

Wreszcie wypróbuj aplikację.