मुझे एक समस्या है जो मुझे पागल कर रही है। मैटलैब केवल एक जार फ़ाइलमैटलैब जार पैकेज में मेरे कुछ जावा वर्ग (सभी नहीं) देख सकते हैं
में embeded मेरी वर्ग के कुछ देखता है अगर मैं एक पैकेज के बाहर वर्गों संकलन और javaaddpath का उपयोग कर मैटलैब में वर्ग के लिए पथ जोड़ने के लिए, मुझे कोई समस्या
जब मैं मुठभेड़ नहीं है कक्षा में एक पैकेज में संकलित करें और फिर Matlab के तहत उन्हें एक्सेस करने का प्रयास करें, मुझे समस्याएं हैं। कुछ मैटलैब कोड
javaaddpath('/Users/me/Documents/workspace/EKGTest.jar');
clear java
import com.neurosky.thinkgear.*
methods('EkgSense')
Methods for class com.neurosky.thinkgear.EkgSense:
EkgSense getClass notify reset
addTemplate getClassificationResults notifyAll toString
equals hashCode processData wait
methods('EkgEpoch')
No methods for class EkgEpoch or no class EkgEpoch
अब, मैं पैकेज में देखता हूं, सभी वर्ग सार्वजनिक हैं। यह
osx:/Users/me/Documents/workspace> jar tf EKGTest.jar
META-INF/MANIFEST.MF
META-INF/REFACTORINGS.XML
com/
com/neurosky/
com/neurosky/thinkgear/
com/neurosky/thinkgear/EkgEpoch.class
com/neurosky/thinkgear/EkgEpoch.java
com/neurosky/thinkgear/EkgParameters.class
com/neurosky/thinkgear/EkgParameters.java
com/neurosky/thinkgear/EkgTemplate.class
com/neurosky/thinkgear/EkgTemplate.java
com/neurosky/thinkgear/Matlab.class
com/neurosky/thinkgear/Matlab.java
com/neurosky/thinkgear/EkgSense.class
com/neurosky/thinkgear/EkgSense.java
com/neurosky/thinkgear/DistanceArray.class
com/neurosky/thinkgear/DistanceArray.java
-tf और --classpath javap के नीचे
osx:/Users/me/Documents/workspace> javap -classpath /Users/me/Documents/workspace/EKGTest.jar com.neurosky.thinkgear.EkgEpoch
Compiled from "EkgEpoch.java"
public class com.neurosky.thinkgear.EkgEpoch extends java.lang.Object implements java.lang.Cloneable{
public int numberOfSamples;
public float[] data;
public com.neurosky.thinkgear.EkgEpoch(int);
public com.neurosky.thinkgear.EkgEpoch(int, float[]);
public com.neurosky.thinkgear.EkgEpoch(float[]);
public com.neurosky.thinkgear.EkgEpoch(com.neurosky.thinkgear.EkgEpoch);
public com.neurosky.thinkgear.EkgEpoch(org.json.JSONArray);
public org.json.JSONArray toJSONArray();
public static float[] convolve(float[], float[]);
public float getLineNoiseAmplitude();
public com.neurosky.thinkgear.EkgEpoch subtract(com.neurosky.thinkgear.EkgEpoch);
public com.neurosky.thinkgear.EkgEpoch subEpoch(int, int);
public com.neurosky.thinkgear.EkgEpoch square();
public com.neurosky.thinkgear.EkgEpoch subtract(float);
public com.neurosky.thinkgear.EkgEpoch diff();
public boolean exceedValue(float, int, int);
public com.neurosky.thinkgear.EkgEpoch smooth(int);
public float mean();
public float sum();
public float max();
public float median();
public com.neurosky.thinkgear.EkgEpoch clone();
public com.neurosky.thinkgear.EkgEpoch sort();
public int[] sortIndices(com.neurosky.thinkgear.EkgEpoch);
public float std();
public int find_heart_beats(int[], float);
public com.neurosky.thinkgear.EkgEpoch detrend();
public java.lang.Object clone() throws java.lang.CloneNotSupportedException;
}
osx:/Users/me/Documents/workspace> javap -classpath /Users/me/Documents/workspace/EKGTest.jar com.neurosky.thinkgear.EkgSense
Compiled from "EkgSense.java"
public class com.neurosky.thinkgear.EkgSense extends java.lang.Object{
public com.neurosky.thinkgear.EkgParameters params;
public com.neurosky.thinkgear.EkgTemplate[] templates;
public com.neurosky.thinkgear.EkgTemplate currentData;
public int lastTemplateInd;
public float lastEpochValue;
public com.neurosky.thinkgear.EkgSense(com.neurosky.thinkgear.EkgParameters);
public void reset();
public void addTemplate(java.lang.String, float[][]);
public void addTemplate(com.neurosky.thinkgear.EkgTemplate);
public java.lang.String getClassificationResults();
public boolean processData(float[]);
}
मैं पर OSX मैटलैब चला रहा हूँ जार का परिणाम है। मैंने Matlab 7.7.0.471 (R2008b) और 7.11.0.584 (R2010b) के साथ प्रयास किया है और एक ही समस्या है। मैटलैब दोनों देशी ओएसएक्स जावा (जावा 1.6.0_26-b03-384-10M3425 ऐप्पल इंक जावा हॉटस्पॉट (टीएम) 64-बिट सर्वर वीएम मिश्रित मोड के साथ उपयोग कर रहे हैं) जो एक्लिप्स में एक जैसा होना चाहिए (मैंने चेक किया है और ग्रहण 1.6 के साथ संकलित)।
याद रखें कि जब मैं संकुल विवरण और जावा फाइलों के शीर्ष पर कुछ आयात करता हूं (पाठ्यक्रम के सभी वर्गों में) और जब मैं बस .class फ़ाइलों में पथ जोड़ता हूं तो मैं लापता वर्ग को कोई समस्या नहीं देख सकता (उन्हें एक जेएआर फ़ाइल में नहीं पहुंचें)।
किसी भी मदद की सराहना की जाएगी। धन्यवाद,
जेसन
पर बेकार है आप, एक समाधान मिल गया है एक जवाब में रख और यह स्वीकार करते हैं स्वयं। इस तरह दूसरों को इसे अधिक आसानी से मिल जाएगा। –