فشلت الكتابة إلى دير درجة الحرارة عند تشغيل كما SYSTEM على Win7 و

StackOverflow https://stackoverflow.com/questions/1925391

سؤال

لدينا تطبيق جافا يتضمن المكونات التي تعمل كما 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٪ على يقين من أن يكتب إلى حيث كنت أعتقد أنه يكتب؟ وبالنظر إلى أن حالة تعديل البرنامج لإجبارها على الكتابة إلى هناك ويعمل هذا يبدو وكأنه كنت تحاول الكتابة إلى دليل آخر.

scroll top