Estou fazendo da seguinte forma: criei no meu desktop, uma pasta Java. Dentro dela, uma pasta chamada "test", que é o diretório do projeto. Dentro desta, uma pasta "xis", e dentro desta, o arquivo java principal da seguinte forma:
package xis;
public class TesteJar {
String xx;
public static void main(String[] args){
TesteJar x = new TesteJar();
x.xx = "Hello, world!";
System.out.println(x.xx);
}
}
Compilei da seguinte forma:
C:\Users\fw\Desktop\Java\test
javac xis\TesteJar.java
Criei o arquivo Manifest.mf na pasta "test" com o conteúdo:
Manifest-Version: 1.0
Created-By: 1.8.0_101 (Oracle Corporation)
Main-Class: xis.TesteJar
E criei o JAR da seguinte forma:
C:\Users\fw\Desktop\Java\test
jar -cfm TesteJar.jar Manifest.mf test
Mas quando tento executá-lo de duas formas diferentes, recebo um erro:
C:\Users\fw\Desktop\Java\test
java -jar TesteJar.jar
nenhum atributo de manifesto principal em TesteJar.jar
C:\Users\fw\Desktop\Java\test
java -jar TesteJar.jar xis.TesteJar
nenhum atributo de manifesto principal em TesteJar.jar
Qual o problema?
EDIT ---
Consigo executar através de java -cp TesteJar.jar xis.TesteJar
mas o intuito não é esse, certo? O correto, segundo o exercício, é fazer o Manifest funcionar sem precisar localizar o path da classe principal.