यह करने के लिए खोज करते समय, मुझे विभिन्न विकल्पों के बारे में कुछ अस्पष्ट चर्चा मिली, जैसे जेएनआई बनाम जेएनए, लेकिन ठोस उदाहरणों के रास्ते में ज्यादा नहीं।जावा से विंडोज कर्नेल फ़ंक्शन को कॉल करने का सबसे आसान तरीका क्या है?
प्रसंग:;:
अगर जावा केFile.renameTo()
यह (जो भी कारण के लिए
it is a little problematic) काम है ऐसा नहीं कर सकते, मैं वापस सीधे इस देशी विंडोज समारोह है, जो kernel32.dll में परिभाषित किया गया है (
from this answer) का उपयोग करने के लिए गिर करना चाहते हैं
BOOL WINAPI MoveFile(
__in LPCTSTR lpExistingFileName,
__in LPCTSTR lpNewFileName
);
तो, जो भी दृष्टिकोण का उपयोग कर, आप जावा फ़ंक्शन के भीतर से उस फ़ंक्शन को वास्तव में कैसे कॉल करेंगे? मैं न्यूनतम मात्रा में गैर-जावा कोड या अतिरिक्त चरणों (जैसे संकलन या तैनाती में) के साथ सबसे आसान तरीका ढूंढ रहा हूं।
दोनों को कार्यान्वित करना ठीक है, लेकिन * कैसे * MoveFileW को सीधे कॉल करने के लिए कैसे? मैथ्यू फ्लैंचन की तरह सुझाव देता है, या क्या? उदाहरण कोड की कुछ पंक्तियां (जैसे नेटिव.लोड लाइब्रेरी() आदि का उपयोग कैसे करें) की सराहना की जाएगी। – Jonik
क्या आपने मेरा कामकाजी उदाहरण देखा? – jitter
जेएनए उदाहरण के लिए धन्यवाद! बीटीडब्ल्यू, इंटरफ़ेस MoveFileA (जिटर के उत्तर में उल्लिखित) के लिए कैसे देखेंगे? बस "MoveFileW" के बजाय "MoveFileA" का उपयोग करना अच्छा नहीं था। मैं वास्तव में एक निर्देशिका को स्थानांतरित करने/पुनर्नामित करने की कोशिश कर रहा हूं, और यह इस के साथ काम नहीं कर सका - हालांकि मुझे यकीन नहीं है कि यह MoveFileW या किसी और चीज़ के कारण है। – Jonik