the-one icon indicating copy to clipboard operation
the-one copied to clipboard

fix: javac option -extdirs not allowed on windows

Open totorowechat opened this issue 3 years ago • 4 comments

issue related:

  • resolves #95
  • resolves #94
  • resolves #72

totorowechat avatar Jan 13 '21 06:01 totorowechat

Thank you for the PR! Unfortunately I don't have a windows PC anymore so would be great if others can try this and confirm it fixes the issue with different setups and recent windows & Java versions.

akeranen avatar Jan 13 '21 18:01 akeranen

Hi! I am getting the following:

C:\Users\gaboc\Documents\The-ONE>javac -sourcepath src -d target -extdirs lib/ src/core/.java src/movement/.java src/report/.java src/routing/.java src/gui/.java src/input/.java src/applications/.java src/interfaces/.java error: Invalid filename: src/core/*.java Usage: javac use --help for a list of possible options

C:\Users\gaboc\Documents\The-ONE>javac -sourcepath src -d target -cp lib\ECLA.jar;lib\DTNConsoleConnection.jar src/core/.java src/movement/.java src/report/.java src/routing/.java src/gui/.java src/input/.java src/applications/.java src/interfaces/.java error: Invalid filename: src/core/*.java Usage: javac use --help for a list of possible options

C:\Users\gaboc\Documents\The-ONE>IF NOT EXIST "target\gui\buttonGraphics" ( mkdir target\gui\buttonGraphics copy src\gui\buttonGraphics* target\gui\buttonGraphics
)

What do I do wrong? Already tried to modify to:

javac -sourcepath src -d %targetdir% -cp lib\ECLA.jar;lib\DTNConsoleConnection.jar core/.java movement/.java report/.java routing/.java gui/.java input/.java applications/.java interfaces/.java

it gives back the following:

C:\Users\gaboc\Documents\The-ONE>javac -sourcepath src -d target -cp lib\ECLA.jar;lib\DTNConsoleConnection.jar core/.java movement/.java report/.java routing/.java gui/.java input/.java applications/.java interfaces/.java core\DTNHost.java:14: error: package routing.util does not exist import routing.util.RoutingInfo; ^ routing\MessageRouter.java:15: error: package routing.util does not exist import routing.util.RoutingInfo; ^ routing\MessageRouter.java:17: error: package util does not exist import util.Tuple; ^ movement\MovementModel.java:9: error: package util does not exist import util.ActivenessHandler; ^ core\NetworkInterface.java:14: error: package routing.util does not exist import routing.util.EnergyModel; ^ core\NetworkInterface.java:16: error: package util does not exist import util.ActivenessHandler; ^ core\DTNHost.java:250: error: cannot find symbol public RoutingInfo getRoutingInfo() { ^ symbol: class RoutingInfo location: class DTNHost core\NetworkInterface.java:68: error: cannot find symbol private ActivenessHandler ah; ^ symbol: class ActivenessHandler location: class NetworkInterface core\Settings.java:21: error: package util does not exist import util.Range; ^ core\Settings.java:614: error: cannot find symbol public Range[] getCsvRanges(String name) { ^ symbol: class Range location: class Settings movement\MovementModel.java:54: error: cannot find symbol private ActivenessHandler ah; ^ symbol: class ActivenessHandler location: class MovementModel routing\MessageRouter.java:576: error: cannot find symbol public RoutingInfo getRoutingInfo() { ^ symbol: class RoutingInfo location: class MessageRouter core\DTNSim.java:12: error: package ui does not exist import ui.DTNSimTextUI; ^ core\SimScenario.java:16: error: package movement.map does not exist import movement.map.SimMap; ^ core\SimScenario.java:108: error: cannot find symbol private SimMap simMap; ^ symbol: class SimMap location: class SimScenario core\SimScenario.java:251: error: cannot find symbol public SimMap getMap() { ^ symbol: class SimMap location: class SimScenario movement\BusControlSystem.java:11: error: package movement.map does not exist import movement.map.SimMap; ^ movement\BusMovement.java:10: error: package movement.map does not exist import movement.map.MapNode; ^ movement\MapRouteMovement.java:10: error: package movement.map does not exist import movement.map.DijkstraPathFinder; ^ movement\MapRouteMovement.java:11: error: package movement.map does not exist import movement.map.MapNode; ^ movement\MapRouteMovement.java:12: error: package movement.map does not exist import movement.map.MapRoute; ^ movement\MapBasedMovement.java:20: error: package movement.map does not exist import movement.map.MapNode; ^ movement\MapBasedMovement.java:21: error: package movement.map does not exist import movement.map.SimMap; ^ movement\BusTravellerMovement.java:10: error: package movement.map does not exist import movement.map.DijkstraPathFinder; ^ movement\BusTravellerMovement.java:11: error: package movement.map does not exist import movement.map.MapNode; ^ movement\BusTravellerMovement.java:12: error: package movement.map does not exist import movement.map.SimMap; ^ movement\BusControlSystem.java:31: error: cannot find symbol private SimMap simMap; ^ symbol: class SimMap location: class BusControlSystem movement\BusControlSystem.java:117: error: cannot find symbol public void setMap(SimMap map) { ^ symbol: class SimMap location: class BusControlSystem movement\BusControlSystem.java:125: error: cannot find symbol public SimMap getMap() { ^ symbol: class SimMap location: class BusControlSystem movement\BusTravellerMovement.java:48: error: cannot find symbol private DijkstraPathFinder pathFinder; ^ symbol: class DijkstraPathFinder location: class BusTravellerMovement movement\MapRouteMovement.java:41: error: cannot find symbol private DijkstraPathFinder pathFinder; ^ symbol: class DijkstraPathFinder location: class MapRouteMovement movement\MapRouteMovement.java:44: error: cannot find symbol private List<MapRoute> allRoutes = null; ^ symbol: class MapRoute location: class MapRouteMovement movement\MapRouteMovement.java:51: error: cannot find symbol private MapRoute route; ^ symbol: class MapRoute location: class MapRouteMovement movement\MapRouteMovement.java:156: error: cannot find symbol public List<MapNode> getStops() { ^ symbol: class MapNode location: class MapRouteMovement movement\MapBasedMovement.java:33: error: cannot find symbol private SimMap map = null; ^ symbol: class SimMap location: class MapBasedMovement movement\MapBasedMovement.java:35: error: cannot find symbol protected MapNode lastMapNode; ^ symbol: class MapNode location: class MapBasedMovement movement\MapBasedMovement.java:64: error: cannot find symbol private static SimMap cachedMap = null; ^ symbol: class SimMap location: class MapBasedMovement movement\MapBasedMovement.java:88: error: cannot find symbol public MapBasedMovement(Settings settings, SimMap newMap, int nrofMaps) { ^ symbol: class SimMap location: class MapBasedMovement movement\MapBasedMovement.java:243: error: cannot find symbol protected MapNode selectRandomOkNode(List<MapNode> nodes) { ^ symbol: class MapNode location: class MapBasedMovement movement\MapBasedMovement.java:243: error: cannot find symbol protected MapNode selectRandomOkNode(List<MapNode> nodes) { ^ symbol: class MapNode location: class MapBasedMovement movement\MapBasedMovement.java:256: error: cannot find symbol public SimMap getMap() { ^ symbol: class SimMap location: class MapBasedMovement movement\MapBasedMovement.java:265: error: cannot find symbol private SimMap readMap() { ^ symbol: class SimMap location: class MapBasedMovement movement\MapBasedMovement.java:317: error: cannot find symbol private void checkMapConnectedness(List<MapNode> nodes) { ^ symbol: class MapNode location: class MapBasedMovement movement\MapBasedMovement.java:362: error: cannot find symbol private void checkCoordValidity(List<MapNode> nodes) { ^ symbol: class MapNode location: class MapBasedMovement movement\MapBasedMovement.java:381: error: cannot find symbol private SimMap checkCache(Settings settings) { ^ symbol: class SimMap location: class MapBasedMovement movement\CarMovement.java:9: error: package movement.map does not exist import movement.map.DijkstraPathFinder; ^ movement\CarMovement.java:10: error: package movement.map does not exist import movement.map.MapNode; ^ movement\CarMovement.java:25: error: cannot find symbol private DijkstraPathFinder pathFinder; ^ symbol: class DijkstraPathFinder location: class CarMovement movement\EveningActivityMovement.java:13: error: package movement.map does not exist import movement.map.DijkstraPathFinder; ^ movement\EveningActivityMovement.java:14: error: package movement.map does not exist import movement.map.MapNode; ^ movement\EveningActivityMovement.java:15: error: package movement.map does not exist import movement.map.SimMap; ^ movement\EveningActivityMovement.java:51: error: cannot find symbol private DijkstraPathFinder pathFinder; ^ symbol: class DijkstraPathFinder location: class EveningActivityMovement movement\ExternalMovement.java:15: error: package util does not exist import util.Tuple; ^ input\ExternalMovementReader.java:13: error: package util does not exist import util.Tuple; ^ movement\ExternalMovement.java:41: error: cannot find symbol private static List<Tuple<String, Coord>> initLocations; ^ symbol: class Tuple location: class ExternalMovement movement\ExternalMovement.java:56: error: cannot find symbol private Queue<Tuple<Double, Path>> pathQueue; ^ symbol: class Tuple location: class ExternalMovement input\ExternalMovementReader.java:101: error: cannot find symbol public List<Tuple<String, Coord>> readNextMovements() { ^ symbol: class Tuple location: class ExternalMovementReader movement\HomeActivityMovement.java:13: error: package movement.map does not exist import movement.map.DijkstraPathFinder; ^ movement\HomeActivityMovement.java:14: error: package movement.map does not exist import movement.map.MapNode; ^ movement\HomeActivityMovement.java:15: error: package movement.map does not exist import movement.map.SimMap; ^ movement\HomeActivityMovement.java:41: error: cannot find symbol private DijkstraPathFinder pathFinder; ^ symbol: class DijkstraPathFinder location: class HomeActivityMovement movement\OfficeActivityMovement.java:13: error: package util does not exist import util.ParetoRNG; ^ movement\OfficeActivityMovement.java:15: error: package movement.map does not exist import movement.map.DijkstraPathFinder; ^ movement\OfficeActivityMovement.java:16: error: package movement.map does not exist import movement.map.MapNode; ^ movement\OfficeActivityMovement.java:17: error: package movement.map does not exist import movement.map.SimMap; ^ movement\OfficeActivityMovement.java:56: error: cannot find symbol private DijkstraPathFinder pathFinder; ^ symbol: class DijkstraPathFinder location: class OfficeActivityMovement movement\OfficeActivityMovement.java:58: error: cannot find symbol private ParetoRNG paretoRNG; ^ symbol: class ParetoRNG location: class OfficeActivityMovement movement\ShortestPathMapBasedMovement.java:9: error: package movement.map does not exist import movement.map.DijkstraPathFinder; ^ movement\ShortestPathMapBasedMovement.java:10: error: package movement.map does not exist import movement.map.MapNode; ^ movement\ShortestPathMapBasedMovement.java:11: error: package movement.map does not exist import movement.map.PointsOfInterest; ^ movement\ShortestPathMapBasedMovement.java:21: error: cannot find symbol private DijkstraPathFinder pathFinder; ^ symbol: class DijkstraPathFinder location: class ShortestPathMapBasedMovement movement\ShortestPathMapBasedMovement.java:24: error: cannot find symbol private PointsOfInterest pois; ^ symbol: class PointsOfInterest location: class ShortestPathMapBasedMovement routing\ActiveRouter.java:13: error: package routing.util does not exist import routing.util.EnergyModel; ^ routing\ActiveRouter.java:14: error: package routing.util does not exist import routing.util.MessageTransferAcceptPolicy; ^ routing\ActiveRouter.java:15: error: package routing.util does not exist import routing.util.RoutingInfo; ^ routing\ActiveRouter.java:16: error: package util does not exist import util.Tuple; ^ routing\ActiveRouter.java:49: error: cannot find symbol private MessageTransferAcceptPolicy policy; ^ symbol: class MessageTransferAcceptPolicy location: class ActiveRouter routing\ActiveRouter.java:50: error: cannot find symbol private EnergyModel energy; ^ symbol: class EnergyModel location: class ActiveRouter routing\ActiveRouter.java:350: error: cannot find symbol protected List<Tuple<Message, Connection>> getMessagesForConnected() { ^ symbol: class Tuple location: class ActiveRouter routing\ActiveRouter.java:379: error: cannot find symbol List<Tuple<Message, Connection>> tuples) { ^ symbol: class Tuple location: class ActiveRouter routing\ActiveRouter.java:378: error: cannot find symbol protected Tuple<Message, Connection> tryMessagesForConnected( ^ symbol: class Tuple location: class ActiveRouter routing\ActiveRouter.java:651: error: cannot find symbol public RoutingInfo getRoutingInfo() { ^ symbol: class RoutingInfo location: class ActiveRouter routing\MaxPropRouter.java:17: error: package routing.maxprop does not exist import routing.maxprop.MaxPropDijkstra; ^ routing\MaxPropRouter.java:18: error: package routing.maxprop does not exist import routing.maxprop.MeetingProbabilitySet; ^ routing\MaxPropRouter.java:19: error: package routing.util does not exist import routing.util.RoutingInfo; ^ routing\MaxPropRouter.java:20: error: package util does not exist import util.Tuple; ^ routing\MaxPropRouter.java:50: error: cannot find symbol private MeetingProbabilitySet probs; ^ symbol: class MeetingProbabilitySet location: class MaxPropRouter routing\MaxPropRouter.java:53: error: cannot find symbol private Map<Integer, MeetingProbabilitySet> allProbs; ^ symbol: class MeetingProbabilitySet location: class MaxPropRouter routing\MaxPropRouter.java:55: error: cannot find symbol private MaxPropDijkstra dijkstra; ^ symbol: class MaxPropDijkstra location: class MaxPropRouter routing\MaxPropRouter.java:172: error: cannot find symbol private void updateTransitiveProbs(Map<Integer, MeetingProbabilitySet> p) { ^ symbol: class MeetingProbabilitySet location: class MaxPropRouter routing\MaxPropRouter.java:345: error: cannot find symbol private Tuple<Message, Connection> tryOtherMessages() { ^ symbol: class Tuple location: class MaxPropRouter routing\MaxPropRouter.java:575: error: cannot find symbol public RoutingInfo getRoutingInfo() { ^ symbol: class RoutingInfo location: class MaxPropRouter routing\MaxPropRouter.java:551: error: cannot find symbol implements Comparator <Tuple<Message, Connection>> { ^ symbol: class Tuple location: class MaxPropRouter routing\MaxPropRouter.java:562: error: cannot find symbol public int compare(Tuple<Message, Connection> tuple1, ^ symbol: class Tuple location: class MaxPropRouter.MaxPropTupleComparator routing\MaxPropRouter.java:563: error: cannot find symbol Tuple<Message, Connection> tuple2) { ^ symbol: class Tuple location: class MaxPropRouter.MaxPropTupleComparator routing\MaxPropRouterWithEstimation.java:17: error: package routing.maxprop does not exist import routing.maxprop.MaxPropDijkstra; ^ routing\MaxPropRouterWithEstimation.java:18: error: package routing.maxprop does not exist import routing.maxprop.MeetingProbabilitySet; ^ routing\MaxPropRouterWithEstimation.java:19: error: package routing.util does not exist import routing.util.RoutingInfo; ^ routing\MaxPropRouterWithEstimation.java:20: error: package util does not exist import util.Tuple; ^ routing\MaxPropRouterWithEstimation.java:48: error: cannot find symbol private MeetingProbabilitySet probs; ^ symbol: class MeetingProbabilitySet location: class MaxPropRouterWithEstimation Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. Note: Some input files use unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 100 errors only showing the first 100 errors, of 392 total; use -Xmaxerrs if you would like to see more

C:\Users\gaboc\Documents\The-ONE>IF NOT EXIST "target\gui\buttonGraphics" ( mkdir target\gui\buttonGraphics copy src\gui\buttonGraphics* target\gui\buttonGraphics
)

Thanks for the help.

csgwonder avatar Jan 22 '21 20:01 csgwonder

C:\Users\gaboc\Documents\The-ONE>javac -sourcepath src -d target -cp lib\ECLA.jar;lib\DTNConsoleConnection.jar src/core/.java src/movement/.java src/report/.java src/routing/.java src/gui/.java src/input/.java src/applications/.java src/interfaces/.java error: Invalid filename: src/core/*.java

Notice javac gives an error message Invalid filename, and I noticed that the name of your directory is The-ONE, so maybe the version you are using is not the latest.

A friend of mine also gave me a zip file of the-one, and it's an old version all the code is not in the src folder, instead in root directory, I don't know the exact version of your code, but you can try

  1. Modify from src/routing/*.java to routing/*.java.
  2. upgrade your code to newest. the newest release page.

P.S. Next time better place your error message and command in code block. Your star disappear in src/routing/*.java in markdown. github code block

totorowechat avatar Jan 23 '21 01:01 totorowechat

Thanks, you are right. For some reason I downloaded something else than the latest version.

csgwonder avatar Jan 25 '21 19:01 csgwonder

The following compile.bat file worked for me with the current state of the master branch (If this becomes obsolete follow the suggestion of @totorowechat)

set targetdir=target

IF NOT EXIST "%targetdir%" mkdir %targetdir%

javac -sourcepath src -d %targetdir% -cp lib/ECLA.jar;lib/DTNConsoleConnection.jar; src/core/*.java src/movement/*.java src/report/*.java src/routing/*.java src/gui/*.java src/input/*.java src/applications/*.java src/interfaces/*.java

IF NOT EXIST "%targetdir%\gui\buttonGraphics" (
	mkdir %targetdir%\gui\buttonGraphics
	copy src\gui\buttonGraphics\* %targetdir%\gui\buttonGraphics\
)

f-schi avatar Dec 14 '22 21:12 f-schi

PR #111 addressed the same issue, so I'll close this PR. Thank you for verifying this!

akeranen avatar Apr 24 '23 20:04 akeranen