Alguém conhece algum tipo de conversor automático de código fonte Java 5 para Java 1.4?
Conversor de código fonte? Pra que você precisa disso?
O código do Java 1.5 roda normal no Java 1.4.
Conversor de código fonte? Pra que você precisa disso?
O código do Java 1.5 roda normal no Java 1.4.[/quote]
Classes podem rodar, mas código Java 5 não compila em compilador 1.4. E infelizmente a Apple já anunciou que só vai ter versão do Java 5 para o Tiger mesmo.
Eu até tenho Java 5 no meu outro computador, que roda Linux, mas se existisse algum conversor automático eu poderia fazer todo o trabalho aqui no caso de projetos open source em Java 5 que quero mexer.
Eu acho que ninguém fez isso não…
Não tem como você atualizar o seu Mac não?
ué… se não me engano tem uma opção no javac q faz compilar usando a versão q vc deseja…
se não me engano é javac -source
aí vc põe 1.4… isso é para o código-fonte
para gerar bytecode compatível, - target 1.4
acho que é isso…
[quote=microfilo]ué… se não me engano tem uma opção no javac q faz compilar usando a versão q vc deseja…
se não me engano é javac -source
aí vc põe 1.4… isso é para o código-fonte
para gerar bytecode compatível, - target 1.4
[/quote]
codigo fonte!=bytecode
O que ela quer eh usar fontes do Java 5 na 1.4
Não tem, e acho pouco provavel achar.
Ter até tem…
- opção 1: pagar centenas de dólares
problema: sou uma pobre estudante não assalariada - opção 2: aceitar as ofertas de cópias do Tiger
problema: não uso software pirata há anos e não gostaria de voltar a usar
No ServerSide eu ouvi dizer que existe um hack da versão do Java 5 da Apple que faz ele rodar em Panther. Esse eu até estou disposta a tentar usar, porém não sei onde encontrá-lo.
Nã, use software pirata não
Mas dê uma olhada nisso, pode ser que lhe ajude:
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=73&t=000094
[quote=Maurício Linhares]Mas dê uma olhada nisso, pode ser que lhe ajude:
http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=73&t=000094[/quote]
Ah, agora está começando a ficar interessante
Vou ver se arrumo um programa não shareware para abrir o pkg ou vou pedir para algum amigo que instalou o Tiger para me passar os arquivos!
Valeu!
Bom, voce vai estar pirateando a JVM do mesmo jeito, Bani… nao era mais facil pedir pra ele te arrumar o CD do Tiger logo duma vez?
Não, a JVM é de uso gratuito e tem apenas como “requisitos mínimos” o Tiger. Porém como o requisito mínimo é apenas do instalador, vou direto aos arquivos!
Aí é mais uma questão de “engenharia reversa” do que de pirataria.
Bani, talvez isso funcione:
:arrow: javac Programa.java (com o compilador Java5)
:arrow: jad Programa.class (JAva Decompiler)
:arrow: mv Programa.jad Programa.java-1.4
Gostei da idéia!
Já nem tinha muitos comentários mesmo…
Boa, boaglio! Bani, da um toque se esse treco funcionar
Ok, hoje testei de tudo por aqui
-
Usar target no compilador java 5.
Erro:
javac: target release 1.4 conflicts with default source release 1.5 -
“hackear” o instalador do Java 5:
Usei esse script e está funcionando. Testei o jetrix por essa JVM e ocorreu tudo bem. Dizem que o Swing do Java 5 não funciona no Panther, mas isso não precisei usar então ainda não testei. -
Solução do Boaglio
Compilei o código
[code]import java.util.*;
public class Teste {
public static void main(String[] args) {
List<Integer> lista = new ArrayList<Integer>();
lista.add(1);
lista.add(2);
lista.add(3);
for (Integer i : lista)
System.out.println(i);
}
}[/code]
que virou após descompilá-lo
[code]import java.io.PrintStream;
import java.util.*;
public class Teste
{
public Teste()
{
}
public static void main(String args[])
{
ArrayList arraylist = new ArrayList();
arraylist.add(Integer.valueOf(1));
arraylist.add(Integer.valueOf(2));
arraylist.add(Integer.valueOf(3));
Integer integer;
for(Iterator iterator = arraylist.iterator(); iterator.hasNext(); System.out.println(integer))
integer = (Integer)iterator.next();
}
}[/code]
Porém o Java 1.4 ainda não tinha Integer.valueOf(int), então não funcionou. Mas chegou perto…
[quote=mister__m] :arrow: Retroweaver
Isso serve ou não?[/quote]
Parece ser a solução mais diretamente aplicável ao problema sugerido inicialmente!
Só não gostei de ter que deixá-lo no classpath para executar o programa depois. Preferia que ele fizesse algum outro tipo de mágica com os métodos novos da API… :roll:
Diz na doc dele que gerar código 1.4 pra todas as features do 1.5 é impossível e foi confirmado pelo time da Sun, inclusive, e que gerar um compilador com -target 1.4 seria possível mas inviável. Acho que você não tem lá muita escolha não