2011-07-24 36 views
25

như vậy tôi đã theo this tutorial, và ở bước 5, tôi nhận được đầu ra sau đây từ GCC:jni.h: Không có tập tin hoặc thư mục

HelloWorld.c:1:17: error: jni.h: No such file or directory 
    In file included from HelloWorld.c:3: 
    HelloWorld.h:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ 
    HelloWorld.c:5: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ 

Tôi biết rằng ông bao gồm các thư mục khác nhau từ hệ thống để hệ thống , vì vậy tôi đã cố gắng để thích ứng với lệnh cho phù hợp, nhưng tôi dường như không thể tìm thấy thư mục chính xác trên hệ thống của tôi. Tôi đang sử dụng Ubuntu 10.04LTS.

+6

+1 cho 'cho dù đơn giản như thế nào, nó cũng có lợi cho người khác.' –

Trả lời

24

Mở ra một loại thiết bị đầu cuối và:

locate jni.h 

Điều đó sẽ cho bạn biết nơi mỗi tập tin gọi là jni.h là trên hệ thống của bạn. Tôi đang trên ubuntu 11.04, và nó nằm tại địa chỉ:

/usr/lib/jvm/java-6-openjdk/include/jni.h 
/usr/lib/jvm/java-6-sun-1.6.0.26/include/jni.h 

Bạn cũng có thể cần phải nhận được nó từ Repos:

sudo apt-get install openjdk-6-jdk 

nên làm các trick nếu bạn không có nó được cài đặt.

+3

Bây giờ tôi có fonud jni.h, tôi nên làm gì để hoàn thành bulid? Thêm nó vào đường dẫn của tôi? – bheussler

+0

Cài đặt 'sudo apt-get install openjdk-8-jdk', nhưng vẫn' định vị jni.h' cho tôi không có gì – Daniel

5

jni.h sống với JDK. Đối với tôi, đó là: jdk1.6.0_25/include/.

Và theo mặc định, tôi không nghĩ rằng Ubuntu sẽ có JDK với thư viện phát triển, vì vậy hãy tải xuống latest JDK version từ Oracle và cài đặt nó ở đâu đó.

Hoặc bạn có thể cài đặt openjdk như @Leif đề xuất nếu nó hoạt động trên 10.04 LTS. Mặc dù, cá nhân tôi, thích một từ Sun/Oracle.

1

Trong Ubuntu 14.04 chạy:

sudo apt-get install openjdk-7-jdk openjdk-7-jre-lib 

Bây giờ, bạn có một tiêu đề vào/usr/lib/jvm/java-7-openjdk-amd64/include

Đối với OpenJDK 6:

sudo apt-get install openjdk-6-jdk openjdk-6-jre-lib 
Các vấn đề liên quan