فشلت الكتابة إلى دير درجة الحرارة عند تشغيل كما SYSTEM على Win7 و
-
20-09-2019 - |
سؤال
لدينا تطبيق جافا يتضمن المكونات التي تعمل كما SYSTEM على أجهزة ويندوز. على ويندوز 7 x64 و فشل مكون واحد عند محاولة فك المكتبة jnidispatch:
Exception in thread "main" java.lang.Error: Failed to create temporary file for
jnidispatch library: java.io.IOException: The system cannot find the path
specified
at com.sun.jna.Native.loadNativeLibraryFromJar(Native.java:600)
at com.sun.jna.Native.loadNativeLibrary(Native.java:550)
at com.sun.jna.Native.<clinit>(Native.java:87)
at falcon.util.vmware.VcmdTwo.loadLibraries(VcmdTwo.java:53)
ونسخها أدناه مقتطف من التعليقات من الطبقة الأصلية من الجيش الشعبي اليوغوسلافي مكتبة:
<اقتباس فقرة>وعندما يتم تحميل الطبقات JNA، المكتبة المشتركة الأم (jnidispatch) هي تحميل أيضا. تم إجراء محاولة لتحميله من مسار مكتبة النظام باستخدام {link نظام # فشل LoadLibrary}. إذا لم يتم العثور على مكتبة المناسبة سيتم استخراجها من مسار الفئة في دليل مؤقت و تحميل من هناك.
اقتباس فقرة>وOK، حتى الآن حتى حسن: جافا تحاول فك jnidispatch.dll في كل ما نقاط java.io.tmpdir في. يبدو أن المشكلة ليكون ذلك نقطة java.io.tmpdir إلى <ط> C: \ ويندوز \ SYSTEM32 \ التكوين \ systemprofile \ APPDATA \ المحلية \ الحرارة \ لأن عملية معينة. هذا الدليل موجود والنظام لديه التحكم الكامل. ومع ذلك، استخراج DLL jnidispatch إلى هذا الدليل فشل دائما. إذا كنت تعديل التعليمات البرمجية في التطبيق لدينا لملفات الكتابة يدويا إلى أن نفس الدليل، نجحت يكتب.
ولقد بدا على كود جافا وJDK ذات الصلة ولا أرى أي سوء تصرف واضح، لذلك أنا اضطر إلى استنتاج أن هذا هو بعض الأخطاء Win7 وUAC ذات الصلة غريب، ولكن الرتق ما اذا كان يمكنني معرفة ما هو. فإن أي اقتراحات ستكون موضع ترحيب كبير.
المحلول
هل لكم 100٪ على يقين من أن يكتب إلى حيث كنت أعتقد أنه يكتب؟ وبالنظر إلى أن حالة تعديل البرنامج لإجبارها على الكتابة إلى هناك ويعمل هذا يبدو وكأنه كنت تحاول الكتابة إلى دليل آخر.
نصائح أخرى
هل حاولت وضع java.io.tmpdir
إلى مكان آخر، كما نوقش هنا و>
والكتابة ملف يمكن أن تفشل لأسباب التالية:
1. إذن المستخدم / ق (الميراث بخشونة).
2. ملف فاسد (موجودة بالفعل).
3. ملف يتم الوصول إليها من قبل تطبيق آخر في نفس الوقت.
4. ملف حبسهم من قبل برنامج مكافحة البرمجيات الخبيثة / مكافحة الفيروسات.
وكان لي مشكلة. الغريب بلدي مكافحة الفيروسات الكشف عن ملف jndispatch.dll كملف نجس وملقاة إلى قبو لها.
قد تكون النوافذ يحمل في ثناياه عوامل المدافع هو فعل الشيء نفسه.
وسحب!