मुझे जावा फ़ंक्शन createTempFile("test", "test")
पर कॉल करते समय 'सिस्टम निर्दिष्ट पथ नहीं मिल रहा है' कहने का अपवाद मिलता है। कोशिश की गई लेकिन कोई भाग्य नहीं है। क्या किसी को पता है कि जावा को अपना डिफ़ॉल्ट अस्थायी पथ कहाँ मिलता है और यह कैसे नहीं मिल सकता है? विंडोज चर सही होने लगते हैं और उन्हें बदलना जावा को प्रभावित नहीं करता है।बनाने के दौरान सिस्टम पथ नहीं ढूंढ सकता है TempFile
उत्तर
किसी को जहां जावा उसके डिफ़ॉल्ट अस्थायी पथ
यह java.io.tmpdir
संपत्ति से पढ़ी जाती हो जाता है से पता है।
Files.createTempFile("test", "test");
अनिवार्य रूप से java.nio.file.TempFileHelper.createTempFile(null, prefix, suffix, attrs);
जो फिर java.nio.file.TempFileHelper.create(dir, prefix, suffix, false, attrs);
कॉल कहते हैं। वहाँ, अगर dir
अशक्त है, यह tmpdir
पर सेट किया जाता है जो इस प्रकार के रूप में घोषित किया गया है:
private static final Path tmpdir =
Paths.get(doPrivileged(new GetPropertyAction("java.io.tmpdir")));
आप के रूप @Joni से जवाब में दिखाया गया है स्पष्ट रूप से गुण सेट कर सकते हैं। आप इसे स्पष्ट रूप से सेट नहीं है, JVM स्टार्टअप पर एक मंच विशिष्ट डिफ़ॉल्ट मान पर यह initializes - भी Environment variable to control java.io.tmpdir?
देख सकते हैं और यह कैसे नहीं पाया जा सकता है?
गलत निर्देशिका के लिए संपत्ति java.io.tmpdir
अंक, अस्थायी फ़ाइल नहीं बनाया जा सकता है।
कैसे डिफ़ॉल्ट मान प्राप्त किया जाता है की स्वतंत्र रूप से, आप सिस्टम संपत्ति java.io.tmpdir
सेट करते समय JVM शुरू करने से अस्थायी फ़ाइलें निर्देशिका सेट कर सकते हैं:
java -Djava.io.tmpdir=/path/to/where/ever/you/like YourClass
आप को पता है जहां डिफ़ॉल्ट मान से आता है चाहते हैं, आपको अपने जेवीएम के लिए सोर्स कोड पढ़ना होगा।
GetTempPath
समारोह जांच के लिए: उदाहरण के लिए, OpenJDK विंडोज पर एपीआई समारोहGetTempPathW
(फ़ाइलjava_props_md.c
के लिए खोज JDK स्रोत कोड में) है, जो वातावरण चर में पथ और निम्नलिखित तरीके से रजिस्ट्री लग रहा है कहता है निम्नलिखित क्रम में पर्यावरण चर का अस्तित्व और पाया गया पहला पथ उपयोग करता है:
- टीएमपी पर्यावरण चर द्वारा निर्दिष्ट पथ।
- TEMP पर्यावरण चर द्वारा निर्दिष्ट पथ।
- USERPROFILE पर्यावरण चर द्वारा निर्दिष्ट पथ।
- विंडोज निर्देशिका।
ध्यान दें कि फ़ंक्शन यह सत्यापित नहीं करता है कि पथ मौजूद है, और न ही यह जांचने के लिए परीक्षण करता है कि वर्तमान प्रक्रिया में पथ के किसी भी प्रकार के पहुंच अधिकार हैं या नहीं।
में विफल रहता है, लेकिन अगर मैं टीएमपी एनवी चर बदलता हूं तो java.io.tmpdir अभी भी व्यापक oodatuim पर प्रिंट करता है? – user1985273
मानते हैं कि "oodatuim" का अर्थ है निर्देशिका: शायद आपका प्रोग्राम एक स्क्रिप्ट के साथ लॉन्च किया गया है जो टीएमपी को रीसेट करता है, हो सकता है कि आपको परिवर्तन को प्रभावी होने के लिए सिस्टम को पुनरारंभ करने की आवश्यकता हो, हो सकता है कि आपका JVM GetTempPath फ़ंक्शन का उपयोग न करे, यह जानना असंभव है प्रदान किया गया डेटा। – Joni
प्रयास करें:
String path = System.getProperty("java.io.tmpdir");
देखें: get property method
और यह यहां पूर्णता के लिए जोड़ने के लिए, वहाँ भी है तरीकों createTempFile(String prefix,String suffix) और जावा के file से createTempFile(String prefix, String suffix, File directory) तरीकों कक्षा।
यहाँ temp फ़ाइल पंख पथ करने के लिए अपने कोड है और अस्थायी रास्ता ढूंढने: इस कोड के
public class GetTempFilePathExample
{
public static void main(String[] args)
{
try{
//create a temp file
File temp = File.createTempFile("temp-file-name", ".tmp");
System.out.println("Temp file : " + temp.getAbsolutePath());
//Get tempropary file path
String absolutePath = temp.getAbsolutePath();
String tempFilePath = absolutePath.
substring(0,absolutePath.lastIndexOf(File.separator));
System.out.println("Temp file path : " + tempFilePath);
}catch(IOException e){
e.printStackTrace();
}
}
}
आउटपुट है:
Temp file : /tmp/temp-file-name3697762749201044262.tmp
Temp file path : /tmp
- 1. "सिस्टम निर्दिष्ट पथ नहीं ढूंढ सकता है।" Asadmin
- 2. नामस्थान सिस्टम नहीं ढूंढ सकता है। Web.UI.DataVisualization.Charting
- 3. मॉड्यूल नहीं ढूंढ सकता - सापेक्ष पथ
- 4. त्रुटि: सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता
- 5. सिस्टम नहीं ढूंढ सकता। Windows.Media namepspace?
- 6. वीबीस्क्रिप्ट WScript.Shell Run() - सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता
- 7. रिलीज बनाने के दौरान Xcode Info.plist या Prefix.pch नहीं ढूंढ सकता
- 8. CreateProcess त्रुटि = 2, सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता Roo
- 9. कॉर्डोवा बिल्ड एंड्रॉइड त्रुटि: सिस्टम निर्दिष्ट पथ नहीं ढूंढ सकता है। त्रुटि: cmd: आदेश निकास कोड 1
- 10. ओएसएक्स सिस्टम के लिए डिफ़ॉल्ट पथ में सी ++ एप्लिकेशन बनाने के दौरान फाइलें शामिल हैं?
- 11. "सिस्टम निर्दिष्ट फाइल नहीं ढूंढ सकता" प्रक्रिया पर त्रुटि। स्टार्ट();
- 12. Maven2 रिश्तेदार पथ से माता-पिता को नहीं ढूंढ सकता
- 13. विंडोज़ एज़ूर सेवा बनाने के दौरान पथ बहुत लंबी त्रुटि
- 14. TortoiseHg प्रतिबद्ध नहीं हो सकता है - "सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता"
- 15. फ़ाइल के लिए निर्देशिका लुकअप ऑपरेटिंग सिस्टम त्रुटि 3 के साथ विफल रहा है (सिस्टम निर्दिष्ट पथ नहीं ढूंढ सकता है।)
- 16. System.Xaml नहीं ढूंढ सकता?
- 17. मॉड्यूल नहीं ढूंढ सकता "./app.module.ngfactory"
- 18. एसएसएल कनेक्शन बनाने के दौरान PKIX पथ निर्माण विफल रहा
- 19. एक्सकोड हेडर फ़ाइल नहीं ढूंढ सकता
- 20. रूबी Tempfile
- 21. Processbuilder फ़ाइल नहीं ढूंढ सकता है ?!
- 22. सिस्टम का कारण ढूंढ रहा है .AccessViolationException
- 23. WindowsError को हल नहीं कर सकता: [त्रुटि 2] सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता
- 24. चर नहीं ढूंढ सकता - PhantomJS
- 25. IOException: प्रोग्राम "javac" नहीं चला सकता: CreateProcess error = 2, सिस्टम निर्दिष्ट फ़ाइल नहीं ढूंढ सकता
- 26. keytool उपनाम नहीं ढूंढ सकता
- 27. PHPunit परीक्षण नहीं ढूंढ सकता
- 28. सिस्टम पथ बनाम Sys.getenv ('पथ')
- 29. Node.js मॉड्यूल नहीं ढूंढ सकता - विंडोज
- 30. "बफर नहीं बनाया गया है" ... बफर बनाने के दौरान
संहिताओं कृपया ... –
जांच क्या स्ट्रिंग dirName = System.getProperty ("java.io.tmpdir") में; और शायद tempDir direclty को परिभाषित करने का प्रयास करें: File.createTempFile (स्ट्रिंग उपसर्ग, स्ट्रिंग प्रत्यय, फ़ाइल निर्देशिका) – Horuss
फ़ाइल। क्रेटटेम्फाइल ("परीक्षण", "परीक्षण") कोड के दौरान बहुत सुंदर है :) – user1985273