Question

Je cherchais des conseils sur la façon d'exécuter un processus qui est la plate-forme un peu croix.

J'ai écrit implémentations Java et Ruby de mon application, mais son moins d'un problème spécifique de la langue et plus d'un problème spécifique de la plate-forme.

sur Ubuntu par exemple / usr / bin / est recherché ce que je fais

# Ruby

`HandBrakeCLI #{args}` # works on Ubuntu and likely other linux distros since HandBrakeCLI is in /usr/bin/

Pour Windows, il recherchera dans le répertoire courant que je suis en cours d'exécution. Cependant, si la copie les fenêtres exécutables dans le répertoire courant d'une erreur reliant l'exécution provoque des plantages (DLL non présent)

L'installation par défaut chemin pour HandBrakeCLI est dans « Program Files (x86) / HandBrake » (x86 uniquement en 64 bits évidemment), mais Program Files est pas dans le chemin de recherche pour autant que je peux dire.

Pour MacOSX Je n'ai pas la moindre idée comment exécuter Mac « Dossiers d'application » de la ligne de commande autre que la commande « ouverte ». Mais cela est moins un problème car ce que je suis vraiment après HandBrakeCLI qui est juste un exécutable normal. Cependant HandBrakeCLI n'est pas installé dans / usr / bin ou / usr / bin local / (ou toute variation de là)

Ma meilleure idée est de créer un fichier de configuration qui a le chemin de HandBrakeCLI. Si je vais dans cette voie mais il serait idéal pour être en mesure de détecter quelle plate-forme que je suis, mais qui est un autre problème tous ensemble. Que je n'ai fait avec les sections C et non de Ruby ou Java.

J'apprécierait toute entrée.

Était-ce utile?

La solution

Vous pouvez obtenir le système d'exploitation actuel en Java en utilisant

System.getProperty("os.name")

En ruby:

require 'rbconfig'
puts Config::CONFIG['host_os'] 

Hope this helps:)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top