Hoi allemaal,
Voor een bepaald project moet ik code schrijven die gerund zal moeten worden onder een Java VM 1.3. Een beetje oud, maar spijtig genoeg niets aan te doen. Zoals jullie wel weten, is bijvoorbeeld het Collection framework niet beschikbaar in versie 1.3. Mijn dev. machine heeft JDK versie 1.6 geinstalleerd. Nu vraag ik mij af waarom mijn compiler geen errors geeft bij het compilen van volgende code:
Ik compile als volgt:
Met andere woorden, ik dacht dat ik eenvoudigweg in Eclipse/Intellij kon aangeven onder welke JM versie het zal moeten runnen, en dat mijn compiler wel zal klagen als ik dingen gebruikt die in deze versie niet ondersteund zijn.
Hoe kan ik dit het beste aanpakken? Ik zie het persoonlijk niet goed zitten om een oude JDK te installeren, want dit gaat volgens mij gegarandeerd problemen geven. Wat is het nut van de -source en -target flags als deze niets doen? Of controleren deze alleen syntax-specefieke eigenschappen van de gegeven versie (zoals generics, annotations, ...)? En zo ja, kan ik op 1 of andere manier in Eclipse of Intellij aangeven dat hij ook effectief controleert of de gebruikte java.x klassen weldegelijk bestaan in de aangegeven versie?
heel erg bedankt allen
Voor een bepaald project moet ik code schrijven die gerund zal moeten worden onder een Java VM 1.3. Een beetje oud, maar spijtig genoeg niets aan te doen. Zoals jullie wel weten, is bijvoorbeeld het Collection framework niet beschikbaar in versie 1.3. Mijn dev. machine heeft JDK versie 1.6 geinstalleerd. Nu vraag ik mij af waarom mijn compiler geen errors geeft bij het compilen van volgende code:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
| public class Test { public static void main(String[] args) { java.util.Collection c = new java.util.ArrayList(10); c.add(new Object()); c.add(new Object()); c.add(new Object()); System.out.println(c.size()); return; } } |
Ik compile als volgt:
code:
1
| javac -source 1.3 -target 1.3 Test.java |
Met andere woorden, ik dacht dat ik eenvoudigweg in Eclipse/Intellij kon aangeven onder welke JM versie het zal moeten runnen, en dat mijn compiler wel zal klagen als ik dingen gebruikt die in deze versie niet ondersteund zijn.
Hoe kan ik dit het beste aanpakken? Ik zie het persoonlijk niet goed zitten om een oude JDK te installeren, want dit gaat volgens mij gegarandeerd problemen geven. Wat is het nut van de -source en -target flags als deze niets doen? Of controleren deze alleen syntax-specefieke eigenschappen van de gegeven versie (zoals generics, annotations, ...)? En zo ja, kan ik op 1 of andere manier in Eclipse of Intellij aangeven dat hij ook effectief controleert of de gebruikte java.x klassen weldegelijk bestaan in de aangegeven versie?
heel erg bedankt allen