2012-06-13 19 views
6

Khi tôi xây dựng Jikes RVM trên Unbuntu, tôi gặp lỗi này. Bất kỳ ý tưởng?"Lỗi: JAVA_HOME không được xác định chính xác". trong xây dựng Jikes 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

biến môi trường: 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

Tôi đã kiểm tra java trong JAVA_HOME/bin thư mục, nó hoạt động. Không có vấn đề làm thế nào tôi thay đổi các biến môi trường, lỗi tiếp tục phàn nàn "Chúng tôi không thể thực thi /opt/jdk1.6.0/bin/java". Có vẻ như tôi đã không sửa đổi đúng "vị trí".

Bất kỳ đầu mối nào?

Cảm ơn!

Trả lời

7

chạy lệnh này:

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

Để tìm ra tập tin được thiết lập JAVA_HOME đến con đường đó.

+0

Hi Rocky, theo lệnh của bạn, tôi nhận được điều này: global.javahome.ia32-linux =/opt/jdk1.6.0 global.javahome.x86_64-linux =/opt/jdk1.6.0 Nhưng chúng là gì? Làm thế nào tôi có thể thay đổi chúng? Cảm ơn! – JackWM

+0

Xin lỗi, tôi đoán bạn nên thêm tùy chọn -l để bạn có thể xem tệp được xác định trong: find. -exec grep -l "jdk1.6.0" {} \; sẽ in tên tệp, sau đó chỉnh sửa tệp đó. –

+0

Tôi tìm thấy chúng. Chúng nằm trong /bin/buildit.base_config. Sau khi sửa đổi chúng thành JAVA_HOME thực, lỗi sẽ biến mất. Cảm ơn! – JackWM

0

Đó là JRE nhưng không phải JDK. Cài đặt JDK và làm cho JAVA_HOME trỏ đến nó.

+0

bạn có thể cho ví dụ về cách thực hiện điều đó không? –

+0

Bạn có nghĩa là một ví dụ về cách cài đặt JDK? Chỉ cần lấy nó từ kho lưu trữ. JAVA_HOME có thể được xuất vào trình bao dưới dạng biến. –

3

Trong khi bạn xây dựng jikes bạn có thể xây dựng nó bằng cách sử dụng kiến ​​hoặc sử dụng lệnh bạn đang sử dụng. Nếu vấn đề JAVA_HOME đang gây rắc rối sử dụng

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

-Đây là hiện diện trong "/usr/bin/jvm".

Phương pháp khác: Có bin/buildit.base_config trong đó đường dẫn cho JAVA_HOME được đề cập cụ thể. Vì vậy, trong "# Default JAVA_HOME values", bạn có thể sửa đổi vị trí thích hợp, ví dụ:

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 

Bạn có thể chọn thứ bạn muốn sử dụng. Nếu không quen thuộc với kiến ​​trúc của bạn, hãy sửa đổi tất cả và bây giờ bạn có thể xây dựng mà không phải lo lắng về đường dẫn java của bạn để được đề cập một cách rõ ràng. Để biết thông tin chi tiết hơn kiểm tra this blog

Tôi cũng đã viết một bài báo nhỏ về cách người ta có thể start to fiddle with Jikes

+0

@jackWM: Hiện tại có lỗi trong các lần tăng trong khi xây dựng nó với openjdk 7 và hoạt động tốt với phiên bản 6, vì vậy hãy sử dụng phiên bản 6. – Rorschach

-1

Bạn có thể nhận được lỗi này do vài lý do. Để khắc phục điều này nhanh chóng, vui lòng thực hiện theo các bước bên dưới,

Đầu tiên tìm vị trí java.Để có được một danh sách các nền tảng Java được cài đặt của bạn, hãy chạy lệnh sau đây từ thiết bị đầu cuối:

$ sudo update-alternatives --config java 

Bây giờ thiết lập JAVA_HOME và PATH,

$ export JAVA_HOME=<java_home> 

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

Tạo liên kết tượng trưng

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

Khi chúng tôi lấy trường hợp của bạn làm ví dụ:

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

Lệnh trên sẽ tạo vị trí liên kết tượng trưng nơi hệ thống đang cố tìm trong vấn đề của bạn.

Cuối cùng, hãy thử ứng dụng của bạn.