คำถามติดแท็ก java

Java เป็นภาษาโปรแกรมที่ใช้งานทั่วไปและเป็นแพลตฟอร์มคอมพิวเตอร์ที่เรียกว่า Java Virtual Machine (JVM) ใช้แท็กนี้เมื่อคุณกำลังจัดการกับโปรแกรม java การติดตั้ง java หรือกำหนดค่าการติดตั้ง java

5
openjdk-8-jre-headless: ขึ้นอยู่กับ: ca-certificate-java แต่มันจะไม่ถูกติดตั้ง
ไม่สามารถติดตั้ง Java8 apt-get install openjdk-8-jre-headless Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or …


5
วิธีการติดตามโปรแกรมจาวา?
ในฐานะผู้ดูแลระบบฉันบางครั้งต้องเผชิญกับสถานการณ์ที่โปรแกรมทำงานผิดปกติในขณะที่ไม่ได้สร้างข้อผิดพลาดหรือสร้างข้อความแสดงข้อผิดพลาดที่ไร้สาระ ในอดีต - ก่อนที่จาวาจะเข้ามา - มีสองมาตรการต่อต้าน: หากไม่มีสิ่งใดช่วย - RTFM ;-) ถ้า 1. ไม่ช่วย - ติดตามการเรียกของระบบและดูว่าเกิดอะไรขึ้น ฉันมักจะใช้strace -fสำหรับงานนี้กับ Linux (ระบบปฏิบัติการอื่นมีเครื่องมือติดตามที่คล้ายกัน) ตอนนี้ในขณะนี้มักจะทำงานได้ดีสำหรับโปรแกรมที่ล้าสมัยการติดตามจะเลือนมากเมื่อทำแบบเดียวกันบนjava -process มีการเรียกระบบจำนวนมากดูเหมือนไม่เกี่ยวข้องกับการกระทำจริงใด ๆ ที่มันเป็นเรื่องยากที่จะค้นหาผ่านการถ่ายโอนข้อมูลดังกล่าว มีวิธีที่ดีกว่าในการทำเช่นนั้น (หากซอร์สโค้ดไม่สามารถใช้ได้)?
25 linux  java  trace 

3
ตำแหน่ง Java จาก / usr / bin / java
ฉันพยายามค้นหาตำแหน่ง java ของฉันภายในระบบ Linux และได้รับสิ่งนี้ [980@b449 ~]$ which java /usr/bin/java [980@b449 ~]$ readlink -f $(which java) /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java ความแตกต่างระหว่าง 2 คำสั่งคืออะไร?
20 symlink  java 

3
กำลังเรียกใช้รหัส javaws ที่ไม่ได้ลงชื่อ
สำหรับคอนโซลระยะไกลของ KVM ฉันต้องสามารถเรียกใช้jnlpไฟล์ได้ เมื่อฉันเรียกใช้ฉันจะได้รับ: net.sourceforge.jnlp.LaunchException: Fatal: Initialization Error: Could not initialize application. at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:797) at net.sourceforge.jnlp.Launcher.launchApplication(Launcher.java:555) at net.sourceforge.jnlp.Launcher$TgThread.run(Launcher.java:908) Caused by: net.sourceforge.jnlp.LaunchException: Fatal: Application Error: Cannot grant permissions to unsigned jars. Application requested security permissions, but jars are not signed. at net.sourceforge.jnlp.runtime.JNLPClassLoader.setSecurity(JNLPClassLoader.java:319) at net.sourceforge.jnlp.runtime.JNLPClassLoader.<init>(JNLPClassLoader.java:239) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:381) at net.sourceforge.jnlp.runtime.JNLPClassLoader.getInstance(JNLPClassLoader.java:337) at net.sourceforge.jnlp.Launcher.createApplication(Launcher.java:789) ... …
19 security  java 

2
การเขียนไฟล์ systemd unit ด้วยพา ธ ที่ปฏิบัติการได้ที่ตั้งค่าสภาพแวดล้อม
ฉันกำลังเขียนไฟล์ systemd unit สำหรับแอปพลิเคชัน Java และฉันต้องการควบคุมเวอร์ชันของ Java ที่ใช้เพื่อเริ่มต้นทำงาน ไฟล์บริการของฉัน (แบบง่าย) คือ [Service] Type=simple EnvironmentFile=%h/Documents/apps/app/app-%i/app.cfg ExecStart=${JAVA_HOME}/bin/java ${JAVA_OPTS} -jar %h/Documents/apps/app/app-%i/myapp.jar SuccessExitStatus=143 เมื่อพยายามเริ่มมันฉันได้รับข้อผิดพลาดกลับมา Apr 28 12:43:37 rombert systemd[1613]: [/home/robert/.config/systemd/user/app@.service:7] Executable path is not absolute, ignoring: ${JAVA_HOME}/bin/java ${JAVA_OPT Apr 28 12:43:37 rombert systemd[1613]: app@1.0.0.service lacks both ExecStart= and ExecStop= setting. Refusing. ฉันรู้ว่าJAVA_HOMEตั้งไว้ถูกต้อง; ถ้าฉันเปลี่ยนExecStartบรรทัดเพื่อเริ่มต้นด้วย/usr/bin/javaจากนั้นเพิ่มสิ่งที่-DsomeOption=${JAVA_HOME}ฉันเห็นมันก็โอเค วิธีแก้ปัญหาที่ชัดเจนคือการสร้างสคริปต์ตัวตัด …
17 systemd  java 

6
ฆ่ากระบวนการ Java เดียวเท่านั้น
ฉันมักจะใช้งานจาวาแอปพลิเคชั่นไม่กี่อันหนึ่งสำหรับเซิร์ฟเวอร์ที่ใช้งานในเครื่องและอื่น ๆ สำหรับ IDE บางตัวเช่น NetBeans และเป็นครั้งคราวหลังจากมีการปรับใช้มากมายเซิร์ฟเวอร์ของฉันติดอยู่ที่ OutOfMemoryException ดังนั้นฉันต้องฆ่ากระบวนการ Java เพื่อเริ่มต้นใหม่ ดังนั้นฉันจึงทำเช่นpkill -9 javaนี้ แต่ยังฆ่า IDE ที่รันอยู่ซึ่งฉันไม่ต้องการ ดังนั้นฉันจะฆ่าเฉพาะแอปพลิเคชันที่เชื่อมโยงกับเซิร์ฟเวอร์ที่ใช้งานและไม่ใช่แอปพลิเคชันอื่น ๆ ได้อย่างไรฉันคิดว่าพวกเขาทั้งหมดกำลังทำงานภายใต้กระบวนการเดียวกัน
17 process  java  kill 

9
ปัญหาในการเปิดจาวาที่ Debian:“ เกิดข้อผิดพลาดขณะโหลดไลบรารีที่แชร์: libjli.so”
ฉันพยายามที่จะเปิดตัวจาวา: $ java -version java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory $ ldd /usr/lib/jvm/java-6-openjdk/jre/bin/java linux-gate.so.1 => (0xb779f000) libz.so.1 => /usr/lib/libz.so.1 (0xb7780000) libpthread.so.0 => /lib/i686/cmov/libpthread.so.0 (0xb7767000) libjli.so => /usr/lib/jvm/java-6-openjdk/jre/bin/../lib/i386/jli/libjli.so (0xb7762000) libdl.so.2 => /lib/i686/cmov/libdl.so.2 (0xb775e000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb7603000) /lib/ld-linux.so.2 (0xb77a0000 $ …

2
จะแก้ไขตัวชี้เมาส์ของแอปพลิเคชัน Java ในออฟเซ็ต WM ได้อย่างไร
วิธีทำซ้ำใน Awesome WM v3.5.2 ถึง 3.5.5 (จนถึง): ติดตั้ง OpenJDK หรือ Oracle Java 7 ข้อผิดพลาดนี้ได้รับการสังเกตทั้งคู่ เริ่มเซสชัน WM ใหม่ที่น่ากลัวกับการกำหนดค่าเริ่มต้น เริ่มการทำงานอย่างใดอย่างหนึ่งjEditหรือPyCharm ข้อผิดพลาดนี้ได้รับการสังเกตทั้งคู่ เลื่อนตัวชี้เมาส์ไปรอบ ๆ และสังเกตว่าการเปลี่ยนแปลงนั้นขึ้นอยู่กับว่าคุณวางตัวอยู่เหนือรหัสไฟล์โครงการหรือเมนู ควรทำงานได้ตามปกติ คลิกและปล่อยบนเมนูไฟล์ป้อนหนึ่งในเมนูย่อยและสังเกตว่ารายการภายใต้ตัวชี้เมาส์ถูกเน้นตลอดเวลา กดMod4+ Spaceซ้ำ ๆ จนกระทั่งเลย์เอาต์ลอยถูกเปิดใช้งาน (แอปพลิเคชันจะเกือบเต็มหน้าจอ) หรือเปิดแอปพลิเคชันอื่นในแท็กเดียวกัน ณ จุดนี้ฉันคาดหวังว่าเมาส์จะทำงานเหมือนกับที่ใช้กับแอปพลิเคชั่น "ปกติ" แต่ฉันสังเกตสิ่งต่อไปนี้: เมื่อคลิกและการนำทางเมนูด้วยเมาส์ตัวชี้เมาส์และรายการเมนูที่เน้นจะถูกชดเชยในแนวตั้งจากกันและกันโดยมีจำนวนพิกเซลเท่ากับความสูงของแถบสถานะ เมื่อวางเมาส์เหนือรายการอื่น ๆ เช่นเดิมไอคอนเคอร์เซอร์จะถูกตั้งค่าราวกับว่าตัวชี้เมาส์สูงขึ้นบนหน้าจอ ตัวอย่างเช่นการโฮเวอร์เหนือบรรทัดข้อความคุณจะไม่เห็นเคอร์เซอร์ข้อความ ราวกับว่ามีบางสิ่งที่ตรวจไม่พบว่าพิกัดหน้าต่างเปลี่ยนไป ข้อผิดพลาดที่คล้ายกัน แต่น่ารำคาญกว่านั้นเกิดขึ้นเมื่อคุณเปิดแอปพลิเคชั่นอื่นในแท็กเดียวกันพฤติกรรมของเมาส์เหมือนกับว่าหน้าต่างไม่ได้เคลื่อนไหวเลย เมื่อคุณสลับแท็กที่แล้วมีการประยุกต์ใช้อื่นที่เปิด - ที่ "สก์ท็อปเมาส์เสมือน" ถูกย้ายไปยังด้านบนซ้ายของหน้าจอหลัก เนื่องจากข้อผิดพลาดเหล่านี้ได้รับการตรวจพบทั้งใน OpenJDK และ …
15 java  awesome 

1
มีวิธีใดที่จะบอกได้ว่าเชลล์สคริปต์ถูกฆ่าด้วยสัญญาณ 9
ฉันมีสคริปต์ทุบตี (เรียกจากโปรแกรมจาวา) ที่ยังคงถูกฆ่า ฉันมักจะจับsignal 15ด้วยtrapแต่แล้วบางส่วนสัญญาณอื่น ๆ ที่มาพร้อมที่ฉันสงสัยว่าเป็นแต่ฉันในพื้นตาบอดเป็นไปได้ถ้ามันเป็นจริงsignal 9signal 9 ฉันรู้ว่าคุณไม่สามารถtrap signal 9มีวิธีอื่นที่ฉันสามารถบอกได้ว่าsignal 9กำลังฆ่าเชลล์สคริปต์ของฉันหรือไม่


1
อะไรคือความแตกต่างระหว่าง JAVA_HOME และการปรับปรุงทางเลือก
ฉันพยายามหาวิธีที่ดีที่สุดในการรัน OpenJDK Java Runtime เป็นค่าเริ่มต้น Java สำหรับกล่อง Fedora ของฉันและใช้ Oracle JDK 6 สำหรับการพัฒนา Android สำหรับการใช้ Android SDK Manager, Android Studio และ Eclipse จาก Android Bundle ฉันติดตั้ง OpenJDK Java Runtime จากที่เก็บ Fedora ซึ่งมีทางเลือกในการตั้งค่าดังนี้ [donnie@fedora ~]$ alternatives --list | grep java jre_openjdk auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre jre_1.7.0 auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre java auto /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/java libjavaplugin.so.x86_64 auto …

2
เรียกใช้ Syscalls จาก Java
มีวิธีการเรียกใช้ syscalls โดยตรงจาก Java หรือจำเป็นต้องเรียกวิธีการเนทีฟก่อนหรือไม่?
12 linux  java 

1
กำหนดค่า java daemon ด้วย systemd
ฉันกำลังใช้คำจำกัดความนี้สำหรับsystemdงาน: [Unit] Description=Some job [Service] ExecStart=/usr/local/sbin/somejob User=dlt Type=forking [Install] WantedBy=multi-user.target สคริปต์ถูกเรียกใช้ดังต่อไปนี้ (การเรียกรูทีนแบบง่ายที่ฟังบนซ็อกเก็ต tcpip และผนวกอินพุตกับไฟล์): #!/bin/sh cd /home/user/tmp/testout nohup java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar </dev/null >/dev/null & หลังจากsystemctl start somejobกระบวนการแสดงว่ากำลังทำงานพร้อมกับพาเรนต์init: user@CANTANDO ~$ ps -u dlt eo pid,ppid,command PID PPID COMMAND 8718 1 java -jar /home/user/programming/tests/java/core/SocketTest/SocketTest.jar หลังจากดำเนินการsystemctl stop somejobตามกระบวนการจะไม่ปรากฏอีกต่อไป (และปิดพอร์ต) ดังนั้นทุกอย่างจึงดูดีและสวยงาม คำถามของฉันคือ: นี่เป็นวิธีแก้ปัญหาที่ยอมรับได้สำหรับการเรียกใช้จาวาดีมอนsystemdหรือมีคำเตือนหรือไม่
11 systemd  java  daemon 

1
วิธีรับ Oracle Java 7 ให้ทำงานกับ setcap cap_net_bind_service + ep
ฉันพยายามให้สิทธิในการเรียกใช้จาวาเพื่อเปิดพอร์ตต่ำกว่า 1024 บน Linux นี่คือการตั้งค่า /home/test/java มี Oracle Server JRE 7.0.25 CentOS 6.4 นี่คือสิ่งที่ getcap ส่งคืน [test@centos6 java]$ pwd /home/test/java [test@centos6 java]$ getcap bin/java bin/java = cap_net_bind_service+ep [test@centos6 java]$ getcap jre/bin/java jre/bin/java = cap_net_bind_service+ep การพยายามเรียกใช้งานจาวาให้ข้อผิดพลาดดังต่อไปนี้ [test@centos6 java]$ bin/java bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: …

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