سؤال

في كل مرة أستخدمها Runtime.exec("cmd /c start....") أنا فتح نافذة CMD. أرغب في إنشاء تطبيق أكثر سلاسة عن طريق إغلاق كل نافذة CMD سابقة. كيف يمكنني أن أفعل هذا؟

إذا كان أي شخص يعرف طريقة أفضل لتشغيل سلسلة من الأوامر في نفس نافذة CMD بدلاً من فتح أدوات جديدة في كل مرة أقوم فيها بتنفيذ أمر ، فيرجى إخبارنا بذلك.

هل كانت مفيدة؟

المحلول

لا يمكنك التحكم في النوافذ المفتوحة من Java. لكني أقترح حلين لك:

أولاً:

Runtime.exec("cmd /c start /MIN ...")

ستمنع المعلمة /min Windows من الظهور.

ثانيا: ضع جميع التطبيقات التي يجب الاتصال بها داخل نفس ملف الدُفعة واتصل بها مرة واحدة. :-)

نصائح أخرى

لا تستخدم البدء ، وهذا يفتح نافذة أخرى

يحل محل:

Runtime.exec("cmd /c start....")

مع:

Runtime.exec("cmd /c ....")

لماذا تحتاج Windows CMD؟

كنت أقوم بتشغيل الأمر مباشرة في Java وألتقط الإخراج وعرضه في نافذة محلية (إذا كانت هناك حاجة على الإطلاق).

فقط تأكد من استهلاك جميع الإخراج من البرنامج أو قد تتوقف. تذكر أيضًا أن تغلق Stdout و Stderr و Stdin Streams أو بعض مقابض الملفات قد تتسرب (جيدًا ، هذا صحيح على بعض jdks على بعض أنظمة Unix ... Windows ، من يعرف).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top