На CentOS 7.2 Linux я успешно загрузил и установил Oracle Java с:
# 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=.
Подобная команда в Windows 7 работает хорошо, и я попытался скопировать оттуда файл TheClassName.class
в Linux.
Пожалуйста, помогите и, пожалуйста, не предлагайте помечать этот вопрос как дубликат, потому что, как вы видите выше, я уже попробовал большинство предложений.
SELINUX выключен (SELINUX=disabled
), и сервер был установлен несколько недель назад, выступая (без ошибок) в качестве LAMP с MySQL/PostgreSQL/Apache/WordPress.
ОБНОВИТЬ:
Да, я должен был переместить файл класса под 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!