- metodo 1: Per la versione minima di JRE, sarà dura. Il modo più semplice è semplicemente richiedere la stessa versione che stai sviluppando contro o in seguito, ad es. JRE 6.x.xo successivo.
- Metodo 2: Installare più JDK, rendendoli disponibili in Eclipse, e cambiare semplicemente la versione che si sta creando, eseguendo la suite di test dell'app ogni volta e assicurandosi che tutti passino. La prima versione del JDK che consente il passaggio di tutti i test è il JRE più basso a cui può essere eseguito. Il semplice completamento della compilazione della tua app non è sufficiente, perché le versioni precedenti di JRE/JDK potrebbero presentare bug che consentono una compilazione corretta, ma non consente di eseguire l'esecuzione corretta del programma con lo.
- Metodo 3: Richiedere sempre l'ultimo lato client, perché Oracle è costantemente in grado di correggere i buchi di sicurezza e, in definitiva, potrebbe essere meglio richiedere le versioni più recenti, se si dispone di quel tipo di controllo, sul lato client .
Per quanto riguarda la RAM, è facile. Quando la JVM si avvia, imposta una quantità massima di RAM (credo che l'impostazione predefinita sia 128 MB) e questo è un limite difficile che l'applicazione non può superare senza crash. Profili la tua app nel tempo, modificando le impostazioni della memoria sulla JVM e scopri quale sia la quantità minima di RAM necessaria per l'esecuzione della tua app sia (a) con prestazioni accettabili, sia (b) senza lanciare un OutOfMemoryError , e hai finito.
Rif.: How to configure JVM options and memory?
Per altri requisiti come req CPU, le cose si fanno un po 'sfocata. Ci sono un sacco di CPU là fuori e il throughput prodotto da un dato sistema può variare non solo in base alla velocità della CPU, ma anche alla velocità del disco rigido, alla quantità di RAM installata nel sistema, alla velocità dell'interfaccia di rete (se stai scrivendo un'app di rete) e altre cose. Per requisiti come questo, ti consigliamo di testarlo su una varietà di sistemi e di tracciare una linea da qualche parte, e di dire, "Puoi aspettarti prestazioni accettabili se hai un hardware potente almeno quanto X, Y , Z ".
L'altra cosa che si potrebbe fare è costruire un benchmark, o un qualche tipo di registrazione delle prestazioni, e avere i dati delle prestazioni inviati a voi. Un sacco di app lo fanno. Sai che "Possiamo inviare dati di utilizzo anonimi alla nave madre?" domanda che ottieni quando installi del software? Bene, tra questi dati comuni ci sono dettagli specifici del sistema come RAM, CPU, modello di disco rigido e altri dettagli hardware (qualunque dato tu determini sia pertinente alla tua app), insieme ai dati di registrazione delle prestazioni. Adottando questo tipo di approccio, si ottengono molti dati sulle prestazioni da numerose configurazioni di sistema diverse senza la necessità di disporre internamente di un numero enorme di macchine configurate in modo diverso.
È possibile fare la stessa cosa per crash del programma e bug - avere le tracce dello stack, le informazioni di sistema e altri dati rilevanti scaricati su un file di registro che viene inviato a voi - ma ovviamente, solo se i vostri utenti hanno ha detto che è okay per inviarti quei dati.
Sapete come gli ingegneri calcolano quanto peso può sopportare un ponte? Guidano camion sempre più pesanti su di esso fino a quando non crolla, quindi lo ricostruiscono. Fai ciò in senso contrario ... inizia a compilare la tua app con JDK 7 e usa JDK precedenti fino a quando non verrà compilata. Lo stesso con la memoria ... usa sempre meno finché non si rompe. Sì, semi-in-guancia :) – Paul
La compilazione da sola non è sufficiente - ho quasi dato anche quella risposta. Poiché le versioni precedenti di JDK/JRE potrebbero includere bug che non sono nella versione utilizzata più spesso, la semplice compilazione non garantisce l'esecuzione corretta del programma. Hai davvero bisogno di (1) compilare e (2) avere l'intera suite di test passare contro un dato JRE. Se non si dispone di una suite di test, il supporto delle versioni precedenti di JRE sarà più complicato. – jefflunt
@Paul Ho sospettato che avrei ricevuto una risposta in questo senso da qualcuno, e immagino ci sia una buona ragione; sembra che non ci sia un modo semplice per calcolare questi requisiti. Grazie per la risposta, Paul, ma per favore vedi i miei commenti sulla risposta di normalocity, che, ritengo sia un buon punto e sono d'accordo che potrei scoraggiare l'uso dei vecchi JRE – Andy