
CentOS 7.2 Linux에서 성공적으로 다운로드하여 설치했습니다.오라클 자바와 함께:
# rpm -Uvh jdk-8u91-linux-x64.rpm
또한 이미 OpenJDK가 설치되어 있습니다.
# rpm -qa | grep -i jdk
java-1.8.0-openjdk-headless-1.8.0.91-0.b14.el7_2.x86_64
java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64
jdk1.8.0_91-1.8.0_91-fcs.x86_64
다음 명령을 사용하여 2개 사이를 전환할 수 있습니다.
# alternatives --config java
There are 2 programs which provide 'java'.
Selection Command
-----------------------------------------------
* 1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64/jre/bin/java
+ 2 /usr/java/jdk1.8.0_91/jre/bin/java
Enter to keep the current selection[+], or type selection number:
다음을 사용하여 버전을 확인하세요.
# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
# javac -version
javac 1.8.0_91
이제 내 문제를 말씀해 주세요 -
다음과 같은 간단한 Java 파일을 만듭니다 TheClassName.java
.
package thepackagename;
public class TheClassName {
public static final void main(String[] args) {
System.out.println("Hello World!");
}
}
javac TheClassName.java
(동일한 디렉토리에 파일을 생성하는 ) 성공적으로 컴파일한 후에 TheClassName.class
는 불행히도 실행할 수 없습니다.
# java -cp . thepackagename.TheClassName
Error: Could not find or load main class thepackagename.TheClassName
또 다른 시도는 다음과 같습니다.
# export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.91-0.b14.el7_2.x86_64/jre
# $JAVA_HOME/bin/java -cp . thepackagename.TheClassName
Error: Could not find or load main class thepackagename.TheClassName
다른 환경 변수를 설정해도 도움이 되지 않습니다.
# export CLASSPATH=.
TheClassName.class
Windows 7에서도 비슷한 명령이 잘 작동하며 거기에서 Linux로도 파일을 복사해 보았습니다 .
도와주세요. 이 질문을 중복으로 표시하지 마세요. 위에서 볼 수 있듯이 이미 대부분의 제안을 시도했기 때문입니다.
SELINUX는 꺼져 있고( SELINUX=disabled
) 서버는 몇 주 전에 설치되어 MySQL/PostgreSQL/Apache/WordPress에서 (오류 없이) LAMP 역할을 합니다.
업데이트:
예, 클래스 파일을 dir 아래로 이동해야 했고 thepackagename
그러면 작동합니다.
# ls thepackagename
TheClassName.class
# java -cp . thepackagename.TheClassName
Hello World!
파일을 만들 수도 test.jar
있는데 지금도 여전히 작동합니다.
# zip -r test.jar thepackagename
adding: thepackagename/ (stored 0%)
adding: thepackagename/TheClassName.class (deflated 31%)
# java -cp test.jar thepackagename.TheClassName
Hello World!
답변1
클래스가 패키지에 있는 경우:
package thepackagename;
public class TheClassName {
public static final void main(String[] args) {
System.out.println("Hello World!");
}
}
그런 다음 잘못된 디렉터리에서 호출하면 다음과 같은 결과가 발생합니다.
Error: Could not find or load main class thepackagename.TheClassName
정규화된 이름으로 호출해야 합니다.
java -classpath . thepackagename.TheClassName
그리고 이 명령은 다음에서 호출되어야 합니다.같은 디렉토리디렉토리가 존재하는 곳입니다 thepackagename
. 이는 이라는 새 디렉터리를 만들고 그 디렉터리로 thepackagename
이동한 TheClassName.class
다음 해당 디렉터리의 상위 디렉터리에서 위 명령을 실행해야 함을 의미합니다 thepackagename
.