Java - serveur chemin absolu
Comment obtenir le chemin absolu de l'emplacement du serveur sur ma machine?
Suppose que je suis en utilisant serveur glassfish puis-je obtenir le chemin absolu de glassfish docroot emplacement comme ci-dessous:
C:\glassfish3\glassfish\domains\domain1\docroot
Au moment de l'exécution, j'ai besoin de créer un fichier à cet emplacement à l'aide de java io paquet comme:
C:\glassfish3\glassfish\domains\domain1\docroot\myfile.txt
Regardez
demande.getRealPath("") ou de la demande.getServletContext().getRealPath("") me donne C:\Users\Administrator\Documents\NetBeansProjects\ServletExamples\build\web
u r l'obtention de ce chemin, probablement en raison de NetBeans u avez configuré le déploiement à chaud.. mais si u vraiment créer un .fichier war et déployez-vous serait probablement obtenir le chemin d'accès à docroot
ServletContext
pour les méthodes comme getRealPath(path)
& getContextPath()
.demande.getRealPath("") ou de la demande.getServletContext().getRealPath("") me donne C:\Users\Administrator\Documents\NetBeansProjects\ServletExamples\build\web
u r l'obtention de ce chemin, probablement en raison de NetBeans u avez configuré le déploiement à chaud.. mais si u vraiment créer un .fichier war et déployez-vous serait probablement obtenir le chemin d'accès à docroot
OriginalL'auteur S Singh | 2012-04-18
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez GlassFish pour commencer GlassFish, c'est à dire utiliser
asadmin start-domain|start-instance
alors nous vous proposons la suite de fer-vêtus de garantie:Le répertoire de travail actuel de la JVM est absolument, positivement garanti d'être le répertoire de configuration d'un domaine ou un serveur. Dans le cas par défaut:
Si vous voulez écrire quelque chose (par défaut) du point d'entrée unique, vous pouvez le faire:
Une autre option qui est de la garantie de toujours travailler dans tous les scénarios, même si vous lancez le serveur avec java directement (par exemple,
java -jar glassfish.jar
) est d'utiliser la valeur de la Propriété Système comme suit:OriginalL'auteur codeplumber
Je ne sais pas si c'est la meilleure façon, mais ça fonctionne pour moi 🙂
OriginalL'auteur Scruger
vous pouvez essayer suivantes:
Et vous pouvez trouver d'autres propriétés en regardant la variable suivante en mode de débogage.
mais comme je peux voir, le sens de la question, les utilisations de glassfish. de sorte qu'il sera utile pour lui/elle.
J'ai essayé de le faire mais malheureusement je n'ai pas trouvé de chemin d'accès absolu à révéler mes serveurs de la racine. Savez-vous comment le déterminer? (J'ai utilisé le deuxième code et imprimé par l'exploitation forestière).
OriginalL'auteur gökhan
C'est une très mauvaise idée. Si vous exécutez dans une GUERRE ou d'un fichier EAR le docroot ne sera pas sur un système de fichiers accessible en écriture. En supposant que cela soit le cas peut conduire à des maux de tête plus tard.
Utiliser une autre méthode, comme l'un des paramètres d'initialisation de la servlet, pour spécifier un système de fichiers accessible en écriture emplacement.
OriginalL'auteur Jim Garrison
J'ai eu un problème similaire et il a terminé avec l'aide de
parce que j'avais besoin de la trajectoire sur une fonction statique. Cette points somwhere de la WEB-INF/classes répertoire. Avec ce vous pourriez nous donner quelque chose comme
path.subString(0,path.indexOf("WEB-INF"))
.Un problème que j'ai eu avec ce: Lors de l'exécution d'un test à partir d'Eclipse, il m'a signalé le "construire" le répertoire du projet.
OriginalL'auteur wutzebaer
Pour que vous avez besoin de ne pas aller pour le chemin d'accès complet car
lors de la création de fichier que par défaut elle va créer au
ROOT
de vous serveurqui est
C:\glassfish3\glassfish\
ici.espère que cela va vous aider.
Écrire du code en java Fichier fichier = new File("/domains/domain1/docroot/myfile.txt"); cela va créer le fichier à C:\glassfish3\glassfish\domains\domain1\docroot\myfile.txt même votre glassfish dans c:\ ou d:\ n'a pas d'importance.
OriginalL'auteur Yogesh Prajapati