dfdfdfgdfd
quarta-feira, 15 de fevereiro de 2012
Usando javac
Compilar classes com javac adicionando mais de um jar ao classspath:
javac -classpath lib/app1.jar:lib/app2.jar /projeto/src/Main.java -d /projeto/classes
Atenção: No Liniux o separador é ":" e no windows é ";"
Fonte:
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/javac.html
javac -classpath lib/app1.jar:lib/app2.jar /projeto/src/Main.java -d /projeto/classes
Atenção: No Liniux o separador é ":" e no windows é ";"
Fonte:
http://docs.oracle.com/javase/1.5.0/docs/tooldocs/solaris/javac.html
domingo, 14 de agosto de 2011
java.lang.ClassFormatError: Absent Code
Ao parsear os metodos de um Entity JPA e vrificar se o mesmo possui determinada anotação (@IntegracaoColuna) foi detectado o erro, pois não era possivel identificar os atributos e metodos das anotações JPA. Pesquisando descobri que o problema estava nos jar do javaee 6 que estava usando.
Código de teste onde o erro foi detectado:
Entidade entidade = new Entidade();
Method[] methods = Class.forName(NOME_CLASSE.getMethods();
String valor = "73";
for (Method m : methods) {
if (m.isAnnotationPresent(IntegracaoColuna.class)) {
m.invoke(entidade, stringvalor);
}
}
Erro: java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/persistence/GenerationType
Problema: A dependência javaaee 6 não estava sendo carregada pelo maven e, tempo de execução.
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>${javaee-api.version}</version>
<scope>provided</scope>
</dependency>
Solução: Tentei modificar o scope para compile e test, mas sem sucesso. Então peguei outro pacote de dependêcncias do javaee 6, a especificação Jboss (jboss-javaee-6.0):
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>2.0.0.Final</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
Carregar arquivos do resources em projetos maven
Carregar arquivos do resources em projetos maven:
InputStream in = getClass().getClassLoader().getResourceAsStream("arquivo.txt");
Atenção:
Código digo em "/projeto/src/java" acessara o resources "/projeto/src/resources"
Código digo em "/projeto/src/test/java" acessara o resources "/projeto/src/test/resources"
Assinar:
Postagens (Atom)