Примечание. Этот ответ был написан для версии 1 вопроса.
Я поражен тем, что первая команда (в Linux) работает, потому что вы не можете запустить файл .java
. Исходный файл Java сначала необходимо скомпилировать с использованием javac
, а затем запустить файл .class
, но без расширения .class
.
javac -cp mssql-jdbc-6.4.0.jre9.jar:. SqlInterface.java
java -cp mssql-jdbc-6.4.0.jre9.jar:. SqlInterface
Во второй команде (в Windows) вы написали sqlInterface
с начальным нижним регистром s
, но в первой команде (в Linux) вы написали SqlInterface
с начальным верхним регистром S
, и поскольку Java чувствительна к регистру, может быть, поэтому команда Windows не работает.
javac -cp mssql-jdbc-6.4.0.jre9.jar;. SqlInterface.java
java -cp mssql-jdbc-6.4.0.jre9.jar;. SqlInterface
Третья команда (в Windows) не работает, потому что $CLASSPATH
- это не то, как вы используете переменную среды. Во-первых, вам не нужно его использовать, потому что команда java читает CLASSPATH
автоматически.
set CLASSPATH=mssql-jdbc-6.4.0.jre9.jar;C:\Users\Paul\java\Praktikum9
javac SqlInterface.java
java SqlInterface
Но если вы действительно хотите его использовать, вам все равно нужен аргумент -cp
, вы используете его с %CLASSPATH%
и цитируете его, если в нем есть пробелы.
set CLASSPATH=mssql-jdbc-6.4.0.jre9.jar;C:\Users\Paul\java\Praktikum9
javac -cp "%CLASSPATH%" SqlInterface.java
java -cp "%CLASSPATH%" SqlInterface