ฉันจะทำให้ไฟล์. jar ทำงานได้อย่างไร


11

ฉันกำลังพยายามเรียกใช้แอปพลิเคชัน jar ภายใต้ Ubuntu ดังนั้นฉันจึงติดตั้ง OpenJDK Java 7 Runtime แต่เมื่อฉันเปิดแอปพลิเคชันนี้ฉันได้รับข้อความนี้:

ไฟล์ '/home/aimad/Programms/jMerise/JMerise.jar' ไม่ได้ถูกทำเครื่องหมายว่าสามารถเรียกใช้งานได้ หากมีการดาวน์โหลดหรือคัดลอกจากแหล่งที่ไม่น่าเชื่อถืออาจเป็นอันตรายได้ สำหรับรายละเอียดเพิ่มเติมอ่านเกี่ยวกับบิตเรียกทำงาน

คำตอบ:


17

java -jar JMerise.jarคุณสามารถเรียกใช้ไฟล์ไหโดยการทำ

อย่างไรก็ตามในการทำให้ไฟล์ jar นั้นสามารถเรียกใช้งานได้คุณจะต้องตั้งค่าบิตที่สามารถเรียกใช้งานได้ตามคำแนะนำของข้อความ chmod +x /home/aimad/Programms/jMerise/JMerise.jarจะทำสิ่งนี้ให้สำเร็จ

หลังจากนั้นคุณสามารถทำได้./JMerise.jarเพื่อเรียกใช้

man chmod จะให้ข้อมูลเกี่ยวกับวิธีการทำงานของ chmod

ดูเพิ่มเติมที่: https://wiki.ubuntu.com/Security/ExecutableBit


7

คลิกขวาที่ไฟล์คลิกที่คุณสมบัติจากนั้นไปที่แท็บการอนุญาตและทำเครื่องหมายในช่องที่ระบุว่า "อนุญาตให้เรียกใช้ไฟล์นี้เป็นโปรแกรม"

ป้อนคำอธิบายรูปภาพที่นี่


จะทำอย่างไรถ้าฉันไม่สามารถทำเครื่องหมายในช่องด้านบนเพื่อ "อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม" ฉันจะตรวจสอบ แต่ช่วงเวลาต่อมามันจะถูกตรวจสอบโดยอัตโนมัติ!
user961627

@ user961627 คุณอาจมีไฟล์. jar เก็บไว้ในพาร์ติชันที่ไม่รองรับบิตปฏิบัติการ ดูที่ไม่สามารถสร้างแฟ้มที่ปฏิบัติการได้สำหรับรายละเอียดเพิ่มเติม
wjandrea

4

ก่อนอื่นคุณต้องตรวจสอบให้แน่ใจว่าคุณมีสภาพแวดล้อมรันไทม์ Java ที่เหมาะสมบนระบบของคุณ Ubuntu ได้เปิด openjdk ใน repo อย่างเป็นทางการซึ่งสามารถสู้กับ Oracle Java ได้ 99.99% เพื่อทำการติดตั้ง:

sudo apt-get install openjdk-7-jre

ถัดไปสร้างไฟล์ชื่อjava-jar-launcher.desktopใน~/.local/share/applicationsและใส่เนื้อหาต่อไปนี้ในมัน

[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False

ถัดไปเพิ่มบรรทัดต่อไปนี้ใน~/.local/share/applications/mimeapps.list:

application/x-java-archive=java-jar-launcher.desktop;

ตอนนี้คุณควรจะสามารถดับเบิ้ลคลิกที่ไฟล์ jar เพื่อเปิดใช้งานหากไม่มีสิ่งใดเกิดขึ้นจากนั้นคลิกขวาบนไฟล์ jar เลือกคุณสมบัติจากนั้นไปที่แท็บ "เปิดด้วย" และคุณจะเห็น "Java Application Launcher" จากนั้นเลือก .

วิธีนี้ prefferable (IMHO) เพราะวิธีนี้คุณจะไม่ให้สิทธิ์ในการเรียกใช้ไฟล์ jar ซึ่งอาจเป็นอันตรายได้ วิธีการนี้จะทำงานในสภาพแวดล้อมแบบกราฟิกเท่านั้นและต้องการให้ผู้ใช้ดับเบิลคลิกไฟล์ด้วยตนเอง


2

เมื่อคุณเรียกใช้แอพพลิเคชั่น jar ของคุณjava -jar application.jarนั่นหมายความว่า Java อยู่ในเส้นทางของคุณ คุณต้องการสองสิ่งง่าย ๆ : 1) เพิ่มล่าม (ซึ่งเห็นได้ชัดว่า#!java -jar) ในบรรทัดแรกของไฟล์ jar ของคุณ แต่อย่างที่คุณทำด้วยสคริปต์เชลล์: echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar

หากคุณ cat เนื้อหาของไฟล์ jar ของคุณคุณจะเห็นมันเริ่มต้นด้วยเช่น: #!java -jar PK ^lN BOOT-INF/PK ..... ..... 2) เพิ่ม attribute execute โดยchmod +x application.jar ตอนนี้คุณสามารถ "self-run" ผ่านทางมันได้./application.jarแล้ว


0

หากการเรียกใช้ไฟล์. jar จากบรรทัดคำสั่งใช้งานได้ ( java -jar myFile.jar) แต่การคลิกสองครั้งใน GUI นั้นไม่ได้และหากsudo chmod +x myFile.jarปรากฏว่าประสบความสำเร็จ แต่คุณยังไม่สามารถเปิดได้ด้วยการคลิกสองครั้งและหากคลิกขวาที่. jar ไฟล์> คุณสมบัติ> สิทธิ์> "อนุญาตให้เรียกใช้ไฟล์เป็นโปรแกรม" ไม่ทำงาน (เช่นช่องทำเครื่องหมายสลับกลับมาหลังจากที่คุณคลิก) จากนั้นอาจเป็นไฟล์. jar อยู่ในระบบไฟล์ NTFS ซึ่งไม่อนุญาตการอนุญาตให้เรียกใช้งาน พื้นฐานต่อไฟล์ (คุณอาจมีปัญหานี้หากคุณดูอัลบูทและมีพาร์ติชัน NTFS ที่ใช้ร่วมกันระหว่าง Ubuntu และ Windows)

การสร้างตัวเรียกใช้งาน (ตามที่ @ tusharkant15 อธิบาย) จะทำงานได้เพราะเบื้องหลังที่คุณกำลังเรียกใช้/usr/bin/javaงานไม่ใช่ไฟล์. jar การย้ายไฟล์. jar ไปยังระบบไฟล์อื่นที่ไม่ใช่ NTFS จะทำงานได้เช่นกัน

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