everson_z:
Não conheço Delphi,
Você pode criar em arquivo .properties com uma chave informando que o ambiente é de desenvolvimento e com rotinas ligadas a essa chave.
Então, só que ai eu teria que ficar mudando manualmente o conteúdo desse properties toda vez que fosse compilar o programa pra distribuição… Num queria depender disso, queria algo mais automático.
thingol:
Uma outra forma é olhar uma System.getProperty. Por exemplo, digamos que você queira ligar ou desligar uma flag de depuração no seu código.
boolean debug = false;
...
if ("debug".equals (System.getProperty ("seusistema.modo")) {
debug = true;
}
e na hora de chamar seu programa (pelo Eclipse, digamos), passe o parâmetro -Dseusistema.modo=debug (no caso do Eclipse, você pode usar:
Run -> Run… -> escolha um projeto -> tab Arguments -> VM Arguments -> preencha com -Dseusistema.modo=debug.
Eu fiz aqui o que vc falou e aparentemente funciona. Só me explica uma coisa, o que são os VM Arguments? Parâmetros pra minha VM? Program arguments eu já tinha usado (são os parâmetros passados pro programa).
Eu tenho diversos projetos, quero que isso funcione pra todos. Eu tenho que ir em cada projeto e criar esse VM Arguments?! Ou criando em um os demais “enxergam” essa propriedade?
Qdo eu gero o jar do projeto, essa tal VM Arguments de alguma forma vai pra lá?! A cada vez que eu executo minha VM tem que informar esse parâmetro ou o fato de eu ter rodado já esse VM Arguments com esse parâmetro uma vez indica que agora sempre essa propriedade já estará na minha VM?!
Esta opção está me parecendo a mais adequada no meu caso. Se puder me ajudar com essas perguntinhas eu agradeço.
oyama:
Esta verificação está “concentrada” em apenas uma parte bem específica do seu código ou está “espalhado” pelo código? Se estiver “concentrado” a opção de um if e uma propertie para “ligar/desligar” acho que é o mais indicado. Se ele está muito “espalhado”, poderia tentar usar Annotation (que no fundo é quase mesma coisa que o if, só que mais “elegante” . O problema é que você vai ter que implementar este Annotation.
Daria para fazer algo também para pensar em algo que injetasse implementações diferentes de acordo com o seu ambiente.
Agora se o seu objetivo é gerar uma build diferente no seu ambiente de desenvolvimento, a opção de customizar o seu script de geração de build é a melhor opção.
Então, essa verificação tende a ocorrer em vários lugares, mas pensando nisso eu já criei um método estatico acessível em qq momento no projeto e dentro dele eu faço as verificações que preciso retornando apenas um boolean.
Eu não sei praticamente nada sobre Annotation…
Não preciso gerar um build diferente no meu sistema de desenvolvimento não, só preciso saber se estou rodando dentro do Eclipse ou não.
kaique:
Se você usasse assertions poderia resolver o seu problema??
[]'s.
Tb. não sei o que são assertions… :oops: