Programa deixar de funcionar

Olá pessoal tudo bem?
Quero fazer o seguinte:
Eu tenho um sistema que eu estou fazendo só por fazer, mas é um sistema bem completo. Eu quero que cada vez que é executado o programa ele apareça na tela uma caixa dizendo que faltam, por exemplo, 2 dias para expirar o programa, e quando passar dois dias, o programa não abre mais, a não ser que eu mude o código.
Ou outra: cada vez que eu abrir o programa, o programa tem uma “quota” de quantas vezes ele poderá abrir. por exemplo:
O programa poderá ser aberto só 30 vezes. Quando eu abrir todas as vezes, ele não abrirá mais. A não ser que mude o código.
Tem como fazer alguma dessas opções no java?
Obrigado

Ola,

Tem a api de preferencias que vc pode usar para gravar a data da primeria execução e quantas vezes foi executado o seu programa, dá uma olhada em java.util.prefs

A classe java.util.prefs.Preferences grava coisas no registro… assim vc pode fazer o que quer.

Ola

O método que usaria, não acho que seja o legal mas vai lá.
No caso dos dias naum tive enhuma ideia
mas no caso das vezes, pensei em usar um arquivo, no qual ele sempre que fosse aberto somasse mais um ao numero de vezes, e quando o valor fosse igual ao limite ele carregaria uma rotina, e naum abriria.

Olá…vc tem algum exemplo então de como eu posso fazer?
Muito agradecido.

[quote=“pauletsss”]Olá…vc tem algum exemplo então de como eu posso fazer?
Muito agradecido.[/quote]

Assim: na classe que verifica as coisas…

[code]
public class Verify{
public final static String KEY_MAX_EXECUTION = "maxExecution";
public final static int maxExecution = 30;
public final static String KEY_MAX_DAY = "maxDay";
public final static int maxDaysExecution = 30;
public final SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");

public Verify(){
Preferences pref = Preferences.userNodeForPackage(this.getClass());
//caso seja a primeira vez… ja vai setar como hoje
Date date = format.parse(pref.get(KEY_MAX_DAY, format.format(new Date())));
//caso seja a primeira vez… ja vai setar como 0
int numExecution = pref.getInt(KEY_MAX_EXECUTION, 0);

// aqui em baixo verifica se ha problemas…

//caso nao haja problemas vc grava no registro novamente...

pref.putInt(KEY_MAX_EXECUTION, ++numExecution);
pref.put(KEY_MAX_DAY, format.format(date));
pref.flush();
}
}[/code]

Procure por DRM em JAVA…

Eu sei que tem uma especificação pra J2ME:
http://www.jcp.org/en/jsr/detail?id=300

Definição de DRM segundo a wikipedia nacional:

A Gestão de direitos digitais (em inglês Digital Rights Management ou DRM) consiste em permitir a restrição da difusão por cópia de conteúdos digitais ao mesmo tempo em que se assegura e administra os direitos autorais e suas marcas registradas. O objetivo do DRM é poder parametrar e controlar um determinado conteúdo de maneira mais restrita. Atualmente é possível personalisar o varejo da difusão de um determinado arquivo comercializado, como por exemplo o número de vezes em que esse arquivo pode ser aberto ou a duração da validade desse arquivo.

Definição da wikepedia internacional: