Làm cách nào để đặt JAVA_HOME chính xác trên CentOS?


8

Tôi đang cố gắng thiết lập JAVA_HOME để tôi có thể cài đặt Apache Solr với sự trợ giúp của hướng dẫn này . Tôi được kết nối với máy chủ của mình bằng ssh với người dùng root

Để cho phép tập lệnh sh đang chạy cài đặt Apache Solr:

mount | grep noexec

Gắn lại hệ thống tập tin với tùy chọn exec:

mount -o remount,exec /dev/md1

Sau đó, mỗi lần tôi cố gắng cài đặt nó bằng các lệnh sau

bin/install_solr_service.sh /tmp/solr-5.3.1.tgz

Tôi nhận được thông báo sau:

WARNING: /opt/solr-5.3.1 already exists! Skipping extract ...

Creating /etc/init.d/solr script ...
The currently defined JAVA_HOME (/usr/local/jdk) refers
to a location where Java could not be found.  Aborting.
Either fix the JAVA_HOME variable or remove it from the
environment so that the system PATH will be searched.
The currently defined JAVA_HOME (/usr/local/jdk) refers
to a location where Java could not be found.  Aborting.
Either fix the JAVA_HOME variable or remove it from the
environment so that the system PATH will be searched.
Service solr installed.

Đây là những gì tôi đã cố gắng cho đến nay:

nano /root/.bash_profile 
nano /etc/profile

Tôi đã thêm các mục sau vào các tệp ở trên vào cuối và lưu chúng

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64
export PATH=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:$PATH

Điều đó đã không làm việc.

Tôi đã tạo tập tin sau /etc/profile.d/java.sh và đặt nó vào:

export JRE_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/
export PATH=$PATH:$JRE_HOME/bin

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64
export JAVA_PATH=$JAVA_HOME

export PATH=$PATH:$JAVA_HOME/bin

Và chạy lệnh sau:

source java.sh

Điều đó cũng không hiệu quả.

Tôi đã cố chạy lệnh sau:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64

Không có may mắn nào cả.

Nhưng khi chạy các lệnh sau đây là những gì tôi nhận được

echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64
echo $PATH
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:/usr/local/jdk/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre//bin:/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin

Vấn đề ở đâu? Tôi không thấy bất kỳ lỗi java nào
sivann

Câu trả lời:


9

Bạn muốn trỏ nó đến JRE. Quay lại đây tôi có

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre/

Nếu sử dụng bash, tôi khuyên bạn nên đặt cái này vào /etc/bashrc(dựa trên RH) hoặc /etc/bash.bashrc(dựa trên Debian)

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")

Giả sử bạn có một liên kết cho Java ở đây. Đây là một điều cụ thể hơn của Debian, vui lòng thay đổi tương ứng cho CentOS
Rui F Ribeiro

1
CentOS 7 ở đây, hoạt động.
Lemon Jodka

1
Điều này chỉ hiệu quả với tôi sau khi ghi đè JAVA_HOME bên trong/etc/bashrc
ovi

@ovi Tôi đang sử dụng Debian, bản phân phối của bạn là gì?
Rui F Ribeiro

@RuiFRibeiro Centos 6.7. Có lẽ nó cũng đáng được đề cập đến /etc/bashrcđã có sau: export JAVA_HOME=/usr/local/jdk export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/classes.zip
ovi

2

Thay vì sao chép ra tập tin từ thư mục cài đặt nó sẽ là tốt hơn để thiết lập SOLR_JAVA_HOME/etc/default/solr.in.shvào vị trí của jrethư mục trong cài đặt của bạn nhưusr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/


2

Tôi đã đọc câu hỏi của tôi và tìm thấy câu trả lời trong đó. Đây là những gì tôi đã làm:

Tôi đã hoàn tác tất cả các thay đổi đối với /root/.bash_profile/ etc / profile

Sau đó, tôi đã tạo một thư mục có tên jdk trong thư mục / usr / local / như vậy

mkdir /usr/local/jdk

Vì đây là jdk dự kiến ​​sẽ được đặt. Sau đó, tôi đã sao chép các tệp jdk vào newcp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0,65-0.b17.el6_7.x86_64 / jre / * / usr / local / jdk / thư mục như vậy:

cp -R /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-0.b17.el6_7.x86_64/jre/* /usr/local/jdk/

Đơn giản như bây giờ tôi đã có thể cài đặt Apache Solr


cp -R sẽ hủy các thuộc tính, sử dụng cp -a.
sivann

0

Trong trường hợp của tôi sau khi thực hiện tất cả những thay đổi này thill / etc / profile. Tôi đã nhập

> source /etc/profile 

Nó làm việc cho tôi. Tôi đã kiểm tra nó với -java -version

Và cũng phản ánh nó với > echo $JAVA_HOME

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.