13
final File parentDir = new File("S:\\PDSPopulatingProgram"); 
parentDir.mkdir(); 
final String hash = "popupateData"; 
final String fileName = hash + ".txt"; 
final File file = new File(parentDir, fileName); 
file.createNewFile(); // Creates file PDSPopulatingProgram/popupateData.txt 

मैं एक फ़ोल्डर में एक फ़ाइल बनाने के लिए कोशिश कर रहा हूँ, लेकिन मैं के रूप मेंjava.security.AccessControlException: प्रवेश निषेध (java.io.FilePermission

java.security.AccessControlException: Access denied 

अपवाद हो रही है मैं खिड़कियों के माहौल में काम कर रहा हूँ। मैं जावा कोड से Windows Explorer से एक फ़ोल्डर बना सकते हैं, लेकिन नहीं

मैं इस मुद्दे को कैसे हल कर सकते हैं

+0

लगता है जैसे आपके पास उस नेटवर्क शेयर पर फ़ाइल बनाने की अनुमति नहीं है। क्या आप उस निर्देशिका में Windows Explorer या कमांड लाइन के भीतर से एक फ़ाइल बना सकते हैं? –

+0

हां मैं विंडोज एक्सप्लोरर से एक फ़ोल्डर बना सकता हूं, लेकिन जावा कोड से नहीं। पता नहीं क्यों? किसी भी तरह की सहायता को आभार समझेंगे। – ferhan

+0

जावा ऐप कैसे लॉन्च किया जा रहा है? क्या यह आपके डेस्कटॉप सत्र के समान विशेषाधिकारों के साथ चल रहा है? –

उत्तर

9

के भीतर अपने <jre location>\lib\security\java.policy कोशिश जोड़ने:।?

grant { permission java.security.AllPermission; };

और देखें कि क्या वह आप की अनुमति देता है। यदि ऐसा है, तो आपको अधिक दानेदार अनुमतियां जोड़नी होंगी।

देखें:

Java 8 Documentation for java.policy files

और

http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html

+1

, मैंने यह कोशिश की है, फिर भी यह काम नहीं कर रहा है। :( – ferhan

+3

यह विशेष रूप से सुरक्षित नहीं है। इंटरनेट ब्राउज़ करें और कोई भी साइट आपकी मशीन पर कोई भी कोड चला सकती है। –

+2

@ टॉमहॉविन-टकलाइन यह स्पष्ट रूप से डीबग के लिए है, इसलिए मैंने कहा "और देखें कि यह आपको अनुमति देता है। यदि ऐसा है, आपको अधिक दानेदार अनुमतियां जोड़नी होंगी। " –

7

हालांकि यह अनुशंसित नहीं है, लेकिन तुम सच में अपने वेब अनुप्रयोग का उपयोग अपनी तैनाती निर्देशिका के बाहर एक फ़ोल्डर जाने के लिए चाहते हैं। आप java.policy फ़ाइल (पथ पीटी बी के उत्तर में के रूप में है)

permission java.io.FilePermission "your folder path", "write" 

आपके मामले में में अनुमति निम्नलिखित जोड़ने की जरूरत है यह

permission java.io.FilePermission "S:/PDSPopulatingProgram/-", "write" 

यहाँ /- होगा किसी भी फाइल या उप फ़ोल्डर के अंदर का मतलब यह फ़ोल्डर

चेतावनी: लेकिन ऐसा करके, आप कुछ सुरक्षा जोखिम आमंत्रित कर रहे हैं।

+1

"/- "का उल्लेख करने के लिए विशेष धन्यवाद। विंडोज़ पर, यह पथों (जैसे" \ - ") में बैकस्लैश के साथ काम नहीं करेगा, और मुझे लगता है वाइल्डकार्ड ऑपरेटर "*" होगा, जिसने मुझे सीधे कॉन्फ़िगरेशन नरक में ले जाया ... – RobertG

+0

मैक में काम नहीं कर रहा, जावा 8 का उपयोग कर – sumanth232

संबंधित मुद्दे