दिलचस्प पोस्ट
savedInstanceState हमेशा रिक्त है पायथन में टाइप की जांच करने के लिए वैधानिक तरीका क्या है? मैं सदस्य प्रारंभिक सूची का उपयोग क्यों करना चाहूंगा? Google डिस्क एंड्रॉइड एपीआई का उपयोग करते हुए Google ड्राइव पर एक फ़ाइल कैसे हटाई जाए उल्का में ग्लोबल वैरिएबल प्रिंट संवाद के बिना विंडोज़ सेवा से एचटीएमएल दस्तावेज़ प्रिंट करें क्लाइंट साइड पर एचटीएमएल को सैनिटेज़ / रिइरेट करें क्या जावा में संकेत मिलता है? JSLint: परिभाषित त्रुटि से पहले फ़ंक्शन का उपयोग करना अजगर बिल्ट-इन प्रकार के लिए एक्सटेंशन विधि! सत्र अपहरण को रोकना डिफ़ॉल्ट URL स्कीम के साथ कैसे संभालना है jQuery एनिमेट पृष्ठभूमि रंग Android इनपुट कनेक्शन त्रुटि MySQL sproc के मापदंडों के रूप में LIMIT पास करना

MATLAB के लिए जावा जेपीए कक्षा

मैं Windows XP Pro SP3 पर MATLAB R2007b, Java 1.6 SE, ग्रहण हेलियस, और MySql 5 का उपयोग कर रहा हूं।

मैं एक क्लास लाइब्रेरी बनाने की कोशिश कर रहा हूं जो एक MySQL 5 डेटाबेस को एक्सेस करने के लिए जेपीए एनोटेशन का उपयोग करता है। विचार यह है कि MATLAB स्क्रिप्ट इन जावा ऑब्जेक्ट्स को इन्स्तांत करता है, जो डीबी तक पहुंचने के लिए एपीआई प्रदान करता है।

मैं अपनी एनोटेटेड क्लासेस बना सकता हूं, जो एक्लिप्स (यानी जेयूनेट टेस्ट) के भीतर काम करता है। मैं कोड को एक जार में निर्यात कर सकता हूं, जिसे मैं कमांड प्रॉम्प्ट से चला सकता हूं।

मैटा जावा क्लासपाथ को जवादापथ () का उपयोग करते हुए अपडेट करते हैं I मैं MATLAB में अपनी कक्षा को इन्स्तांत कर सकता हूं। लेकिन जब मैं अपने init () को कॉल करता हूं, जो javax कॉल करता है। प्रवीणता। सृजनता। सृजन अंतराल प्रबंधक (), मुझे डरा हुआ

"इकाई प्रबंधक के लिए कोई दृढ़ता प्रदाता"

इस त्रुटि का आमतौर पर मतलब है कि persistence.xml फ़ाइल सही जगह पर नहीं है लेकिन यह होना चाहिए क्योंकि मेरी जार कमांड लाइन से काम करती है। MATLAB जावा वर्गपथ में मेटा-आईएनएफ फ़ोल्डर को जोड़ने में मदद नहीं करता है। न ही जार निकालने और निकाले गए फ़ोल्डर संरचना को क्लासपाथ में जोड़ना, चाहे मेटा-आईएनएफ भी जोड़ा जाए या नहीं।

क्या किसी के पास कोई विचार, अखरोट या नहीं है? क्या किसी ने कभी भी MATLAB के किसी भी संस्करण में ऐसा किया है?

धन्यवाद।

-reilly।

Solutions Collecting From Web of "MATLAB के लिए जावा जेपीए कक्षा"

खैर, मुझे "एक जवाब" मिला। मैटलॉग के "गतिशील" और "स्थिर" सीपी के अंतर के बारे में पोस्ट करने से पहले कहीं मैंने देखा "स्थिर" सीपी एक पाठ फ़ाइल है जो स्टार्टअप पर लोड होती है। "गतिशील" सीपी रनटाइम पर भरी हुई है और आप इसे आमतौर पर एम-स्क्रिप्ट कॉल के साथ हेरफेर करते हैं। यही मैं करने की कोशिश कर रहा था

इसलिए मैंने गतिशील पथ में अपने जार जोड़ा और यह काम नहीं किया।

मैंने उन्हें स्थैतिक पथ के अंत में जोड़ा और अलग-अलग त्रुटियां लीं, जो एक्सएमएल पार्सिंग से संबंधित थी। प्रगति!

फिर मैंने अपने जार को स्थैतिक पथ के BEGINNING में जोड़ा और यह काम करता है।

बार्ट सिम्पसन का उद्धरण: क्रेप्टिकुलर

आपके सभी आइडियाज के लिए धन्यवाद। मुझे एक सी # प्रश्न पूछें ताकि मैं बदल सकूं …

-reilly।

MATLAB में जावा के साथ काम करते समय, मुझे अक्सर गतिशील कक्षापथ के साथ समस्याओं का सामना करना पड़ता था। वर्कअराउंड के रूप में, classpath.txt का उपयोग करके अब तक कोई भी समस्या हल हो गई है।

विभिन्न वातावरणों से निपटना, उदाहरण के परीक्षण और उत्पादन के लिए, आपके MATLAB प्रारंभ निर्देशिका में एकाधिक classpath.txt फ़ाइलों में परिणाम। विभिन्न MATLAB रिलीज़ों का उपयोग करना classpath.txt फ़ाइलों की संख्या के आसपास एक और गुणक कहते हैं।

ClassPathHacker.java गतिशील वर्गों और जार फ़ाइलों को अपने स्थैतिक वर्गपथ को जोड़ने के लिए एक विकल्प है। इस दृष्टिकोण का उपयोग करके अब classpath.txt स्पर्श करने की कोई आवश्यकता नहीं है। आपका जावा क्लासपाथ कॉन्फ़िगरेशन इच्छित स्थान पर startup.m

यह केवल स्थिर बनाम गतिशील क्लासपाथ के बारे में आपके उत्तर के लिए एक अनुवर्ती है। यह एक ऐसा समारोह है जो आपको यह बताता है कि मैटलैब के अंदर से एक जावा वर्ग कहाँ लोड किया जा रहा है, और यदि क्लास की परिभाषाओं का कोई मास्किंग हो, तो हो सकता है कि यह आपके लिए ऑर्डर करने के लिए संवेदनशील क्यों हो। आप अन्य टकराव देख सकते हैं; कम से कम dom4j.jar और commons-collections.jar को Matlab के साथ भेज दिया जाता है, लेकिन मुझे नहीं पता कि कौन से संस्करण हैं

 function whereisjavaclassloadingfrom(ClassName) %WHEREISJAVACLASSLOADINGFROM Show where a Java class is loaded from % % whereisjavaclassloadingfrom(ClassName) % % Shows where a Java class is loaded from in this Matlab session's JVM. % This is for diagnosing Java class load problems, such as classpath % ordering issues, seeing if a class of a given name is included in an % unexpected JAR file, etc. % % Displays output to console. % % Examples: % % whereisjavaclassloadingfrom('java.util.HashMap') % whereisjavaclassloadingfrom('com.ldhenergy.etools.MxUtil') % whereisjavaclassloadingfrom('com.google.common.collect.Maps') % whereisjavaclassloadingfrom('org.apache.commons.math.complex.Complex') % Use javaArray to get Class object without having to instantiate. This % lets it work with objects that have private or non-zero-arg constructors, % and avoids side effects of object construction. % (Would use java.lang.Class.forName(), because that's a more direct way of % doing this, but it doesn't work for stuff on the dynamic classpath.) ja = javaArray(ClassName,1); klass = ja.getClass().getComponentType(); klassLoader = klass.getClassLoader(); if isempty(klassLoader) % JVM used null to represent the "bootstrap" class loader % I think that's the same as the "system" class loader klassLoader = java.lang.ClassLoader.getSystemClassLoader(); end klassLoaderStr = char(klassLoader.toString()); klassFilePath = [strrep(ClassName, '.', '/') '.class']; try % This logic assumes that the classes exist as files in the class % loader. It's a valid assumption for mainstream class loaders, % including the one's I've seen with Matlab. klassUrl = klassLoader.getResource(klassFilePath); if isempty(klassUrl) klassUrlStr = ''; else klassUrlStr = char(klassUrl.toString()); end catch err klassUrlStr = sprintf('ERROR: %s', err.message); end % Get all locations, to reveal masked definitions urls = enumeration2array(klassLoader.getResources(klassFilePath)); disp(sprintf('Version: %s\nClass: %s\nClassLoader: %s\nURL: %s', version,... char(klass.getName()), klassLoaderStr, klassUrlStr)); if numel(urls) > 1 disp('Class is masked:'); for i = 1:numel(urls) disp(sprintf('URL %d: %s', i, char(urls(i)))); end end %% function out = enumeration2array(jenum) tmp = {}; while jenum.hasMoreElements() tmp{end+1} = jenum.nextElement(); end out = [tmp{:}]; 

यह सुनिश्चित करें कि आपके पास क्लासपाथ पर जेपीए प्रदाता जार (जैसे eclipselink.jar) है।

क्या आप बिल्कुल निश्चित हैं कि आपने दृढ़ता इकाई के नाम को सही ढंग से कॉल में लिखा है:

 javax.persistence.Persistence.createEntityManagerFactory(String puName) 

इससे आपको एक ही त्रुटि मिल जाएगी नाम केस-संवेदी है।