Tôi đã sử dụng Swig để tạo trình bao bọc Java cho một thư viện được viết bằng C++. Trình bao bọc được tạo thành một gói và sau đó là jar
'ed. Các tập tin được biên dịch một cách chính xác và làm việc hoàn hảo với java nhưng tôi không thể gọi nó từ MATLAB.Gọi Java từ MATLAB
Tôi đã thử thêm đường dẫn vào bình trong tệp đường dẫn tĩnh Java trong MATLAB và sau đó gọi các lớp trong tệp jar nhưng tôi gặp lỗi "Undefined variable or class.."
Hoặc nếu tôi thử sử dụng javaObject(...)
"No class * can be located on Java class path"
.
Tôi không chắc mình đang làm gì sai.
EDIT:
Để kiểm tra gọi một C++ thư viện từ MATLAB, tôi đã tạo ra một "đọc dữ liệu" lớp đơn giản, trong đó có một chức năng mà viết một được tạo ngẫu nhiên vector< vector<double> >
vào một tập tin văn bản và và một hàm đọc nó.
Các file uống một lân tạo ra là: SimpleReader.java
, DoubleVector.java
, exampleJNI.java
, example.java
, DoubleVector2.java
trong gói com.example.reader
. Chúng được biên dịch và đóng gói thành example.jar
(thư viện dll được tạo ra cũng được đóng gói vào trong lọ).
Tất cả đều hoạt động tốt khi gọi nó từ java nên vấn đề phải cụ thể đối với MATLAB. Không có nhiều mã cho MATLAB vì không có gì có vẻ hiệu quả. Tôi có được như xa như
javaclasspath('c:/reader/reader.jar');
obj = com.example.reader.SimpleReader;
tại thời điểm đó tôi nhận được 'Undefined variable "com" or class "com.example.reader.SimpleReader"'
Xin vui lòng cho một ví dụ chi tiết hơn về những gì báo cáo MATLAB bạn đang thực hiện. –