ทำไมจาวาจะไม่เรียกใช้จาก c: \ Windows \ System32


0

จนกระทั่งไม่กี่วันที่ผ่านมาฉันสามารถเรียกใช้แอปพลิเคชัน java จากบรรทัดคำสั่งแล้วมีบางอย่างพังทลาย ฉันตรวจสอบปัญหาที่เกิดขึ้นจนไม่สามารถเรียกใช้ java.exe จาก c: \ Windows \ System32 แม้ว่าฉันจะให้ชื่อพา ธ เต็ม (c: \ windows \ system32 \ java.exe) มันก็ยังไม่ได้รัน " 'c: \ Windows \ System32 \ java.exe' ไม่รู้จักว่าเป็นคำสั่งภายในหรือภายนอก โปรแกรมที่ทำงานได้หรือแบตช์ไฟล์ ". ฉันพยายามจัดการกับชื่ออื่นในไดเรกทอรีเดียวกัน แต่ก็ยังใช้งานไม่ได้เฉพาะเมื่อฉันคัดลอกไปยัง java.exe ไปยังไดเรกทอรีอื่น & amp; วางไดเร็กต์นั้นลงใน PATH ในที่สุดฉันก็เลยใช้งานได้ เป็นวิธีแก้ปัญหาของฉัน แต่ฉันก็ยังอยากจะรู้ว่าทำไมมันหยุดดำเนินการจาก c: \ Windows \ System32 หลังจากเดือนของการมีความสุขที่นั่น!


ฉันไม่แน่ใจว่า java.exe เข้าสู่ Windows \ System32 ตั้งแต่แรกได้อย่างไร แต่นี่ไม่ใช่คำถามสำหรับการติดตั้ง ฉันต้องการทราบว่าทำไม java.exe สามารถเรียกใช้จากไดเรกทอรีใด ๆ ยกเว้นอันนี้
Its me

@Karan เครื่องมือติดตั้ง Windows สำหรับ Oracle / Sun java ทำ วางสำเนาของไฟล์ปฏิบัติการ C:\Windows\System32อย่างน้อยในเครื่อง Windows 7 ของฉัน นี่คือนอกเหนือจากการติดตั้งแบบเต็มที่อยู่ C:\Program Files\Java
Darth Android

@DarthAndroid: ถูกต้องดูเหมือนว่ามันจะวาง ตัวแทนเชิด java.exe ใน system32
Karan

คำตอบ:


3

ปัญหาของคุณอาจเกี่ยวข้องกับการติดตั้ง Java JRE 64- บิตและ 32- บิต ฉันมีปัญหาคล้ายกันที่ฉันเห็น

C:\Windows\System32\java.exe

แต่ไม่สามารถรันได้ ฉันพบ ด้าย ซึ่งบอกใบ้ว่าควรมีสำเนาของไฟล์ที่

C:\Windows\SysWOW64\java.exe

เพื่อให้จาวา 64- บิตดำเนินการจากแอพ 32 บิต

ในกรณีของฉันฉันรู้ว่าแพทช์รักษาความปลอดภัยขององค์กรทำให้การติดตั้งของฉันสับสนเนื่องจากทำงานแล้วไม่ทำงานหลังจากที่ฉันอนุญาตให้แพตช์ทำงาน


2

หากคุณต้องการที่จะดำเนินการจาวาแบบฟอร์มบรรทัดคำสั่งคุณควรเพิ่มไปยังเส้นทางของคุณ ไปที่แผงควบคุม - & gt; ระบบ - & gt; การตั้งค่าระบบขั้นสูงจากนั้นไปที่แท็บขั้นสูงและคลิกที่ตัวแปรสภาพแวดล้อม ค้นหาตัวแปรของระบบที่เรียกว่า PATH และผนวก ;C:\Path\to\java\bin เพื่อมัน ตอนนี้คุณควรจะสามารถเรียกใช้ java จาก cmd.exe


java.exe อยู่ในเส้นทางของฉันเสมอ ฉันสามารถรันจาวาได้ตอนนี้จาก CL เพราะฉันใส่ dir ใหม่เข้าไปใน PATH อย่างไรก็ตาม c: \ Windows \ System32 ยังอยู่ใน PATH ของฉัน แต่จะไม่เรียกใช้จาวาจากตำแหน่งนั้น ทำไม? ฉันพยายามคัดลอก cmds อื่น ๆ (ที่มีชื่อใหม่) ลงใน dir นั้นเพื่อดูว่าพวกเขาใช้ & amp; พวกเขาทำงานได้ดี ดังนั้นมันขึ้นกับ c: \ Windows \ System32 \ java.exe
Its me

0

java.exe ใน C: \ Windows \ system32 วางอยู่ที่นั่นเพราะไดเรกทอรีนั้นจะอยู่ในเส้นทางของคุณเร็วกว่าคนอื่น ๆ ส่วนใหญ่ นั่นคือเป็นวิธีการตรวจสอบให้แน่ใจว่าพบ java.exe นี้เป็นอันดับแรกบนเส้นทางของคุณไม่ว่าคุณจะติดตั้ง JREs หรือ JDK ใดก็ตาม

สิ่งที่ java.exe นี้ทำคือตรวจสอบรีจิสทรีของคุณเพื่อดูว่าควรเปิดตัว java.exe จริงใดและจะเปิดตัวเพื่อแทนที่ตัวเอง

ผลลัพธ์คือถ้าคุณต้องการเรียกใช้จาวารุ่นที่เฉพาะเจาะจงและคุณไม่มีสิทธิ์ของผู้ดูแลระบบ (คุณสามารถแก้ไขเส้นทางผู้ใช้ของคุณ แต่ไม่สามารถแก้ไขเส้นทางของระบบได้) จากนั้นคุณต้องแก้ไขรีจิสตรี อันที่จะถูกเลือกโดย java.exe ใน C: \ Windows \ system32

ตามเอกสารของ Oracle สำหรับ Java 1.6.x: "โปรแกรมการติดตั้งสำหรับเวอร์ชัน Microsoft Windows ของ Java SE Runtime Environment ใช้รีจิสตรีในการบันทึกเส้นทางและข้อมูลเวอร์ชันตัวเรียกใช้งานแอปพลิเคชันในไดเรกทอรีระบบใช้การตั้งค่ารีจิสทรี Java SE Runtime Environment ที่จะใช้เมื่อเรียกใช้แอปพลิเคชัน "

... และ ...

"มีการติดตั้งแฟ้มปฏิบัติการ java.exe สองชุดหนึ่งชุดอยู่ในไดเรกทอรีช่องเก็บของ JRE สำเนาที่สองวางอยู่ใน C: \ windows \ system หรือ C: \ winnt \ system32 ขึ้นอยู่กับระบบเพราะ ของตำแหน่งในไดเรกทอรีระบบสำเนา java.exe ที่สองนี้สามารถเรียกใช้จากตำแหน่งไดเรกทอรีใด ๆ โดยไม่ต้องให้เส้นทางแบบเต็มกับมัน

สำเนาที่สองของจาวาสคริปต์ที่ปฏิบัติการได้นั้นขึ้นอยู่กับการตั้งค่ารีจิสทรี CurrentVersion เพื่อกำหนดว่าควรใช้รีจิสตรีคีย์ใดเพื่อค้นหาตำแหน่งของ JRE ตัวอย่างเช่นหากรีจิสทรี CurrentVersion ถูกตั้งค่าเป็น 1.6 ไฟล์ java.exe ที่รันได้ในไดเรกทอรีระบบจะดูที่คีย์ HKEY_LOCAL_MACHINE \ Software \ JavaSoft \ Java SE Runtime Environment \ 1.6 คีย์เพื่อพิจารณาว่าติดตั้ง JRE ไว้ที่ใด "

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.