Tôi đang cố gắng hiểu cách classpath thực sự hoạt động. Sau khi tìm kiếm khắp nơi trên web này là nơi tôi đã đạt đến nay:Đường dẫn lớp Java - Linux
Tôi đã thêm
export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
tại /etc/environment
. Tôi đang chạy Ubuntu bằng cách này.
Java tìm đường dẫn và biên dịch mà không gặp sự cố.
Vấn đề là nếu tôi thay đổi CLASSPATH và sau đó tôi làm: source /etc/environment
, CLASSPATH mới không được áp dụng. Nó được áp dụng nếu và chỉ khi tôi khởi động lại hệ thống. Ví dụ nếu tôi xoá dòng
export CLASSPATH="/home/foo:/home/foo/Java_code/my_code"
, sau đó tôi làm source/etc/môi trường và cuối cùng tôi làm echo $CLASSPATH
, những gì tôi nhận được là /home/foo:/home/foo/Java_code/my_code
. Tôi nghĩ rằng tôi sẽ nhận được một dòng sản phẩm nào, phải không?
Có cách nào để áp dụng các thay đổi trong biến PATH hoặc CLASSPATH ngay lập tức mà không phải khởi động lại hệ thống không?
Nó có thể giúp bạn biết rằng/tập tin môi trường/etc ban đầu chỉ chứa các dòng sau:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Cảm ơn bạn đã dành thời gian.
Bạn xóa đường dẫn lớp như thế nào? –
tại sao bạn làm tất cả những thứ đó, môi trường của bạn là gì?/etc/environment được sử dụng để định nghĩa các biến môi trường cho các ứng dụng đồ họa. Nếu bạn có đồ họa, bạn có thể sử dụng IDE. Tại sao đi đến tất cả các rắc rối này với bao gồm cả thư mục nhà của bạn + dự án trong classpath? – hovanessyan
Tôi chỉ cố gắng đặt CLASSPATH vĩnh viễn để nhập các gói từ các thư mục cụ thể mà không cần phải xác định nó mỗi khi tôi chạy javac. – tomatoeggs