7
votes

Obtenez Netbeans pour exécuter mon projet avec sudo?

Je travaille sur un projet dans NetBeans nécessitant le projet d'exécution d'avoir des privilèges root.

J'aimerais que, à chaque fois que je pousse "Exécuter le projet" (F6), mon projet est exécuté en tant que root, de sorte que l'équivalent de "Gksudo Javac Main", comme il a une interface graphique.

Une option est de démarrer Netbeans avec des privilèges root, facilement effectué en modifiant le raccourci vers "Gksudo Netbeans". Mais comme j'ai plusieurs projets dans Netbeans, cela signifiait que pour chaque projet, je dois exécuter des Netbeans avec des privilèges root, ce n'est pas ce que je veux.

Une autre option, bien sûr, est de simplement exécuter mon projet à partir de la coquille, mais ce n'est pas idéal non plus.

Je pense que cela est possible en modifiant ce fichier build.xml, mais j'ai du mal à comprendre comment.

Après quelques recherches, il semblerait que c'était plutôt une question d'Apache ANT, j'ai accès à construire.xml que je peux modifier afin que je dois savoir comment obtenir la fourmi exécuter mon projet avec sudo / gksudo. Cependant, je ne peux pas comprendre comment faire ceci ou si cela est possible.


2 commentaires

Vous devez avoir une option pour modifier l'entrée de ligne de commande utilisée pour démarrer votre projet principal. Non ?


Non, autant que je puisse voir dans "Propriétés du projet", Netbeans me permet d'ajouter des arguments, un répertoire de travail et des options VM, mais rien qui ne serait avant le "Java" de la ligne de commande.


4 Réponses :


0
votes

Pourquoi Gksudo au lieu de «sudo Java Main»? Dans les deux cas, vous pouvez simplement définir votre fichier sudoers (dans / etc) pour ne pas nécessiter de mot de passe de votre utilisateur et vous devriez être prêt à partir.


1 commentaires

Assez bien sûr s'il utilisait Gksudo, il n'aurait pas à configurer sudo pour travailler sans mot de passe.



-2
votes

Run Netbeans par utilisateur Super


1 commentaires

... ce qui est exactement ce que le querent a mentionné et a expliqué pourquoi il ne pouvait pas l'utiliser.



0
votes

Astuce très stupide: Créez une nouvelle application Ruby, placez-la à proximité de votre projet Java et placez ce qui suit à Main.RB

PROJECT_DIR = "MyJavaApp"
# These must be relative to java project's dir or absolute paths
CLASSPATH = %w[dist/lib/*.jar /usr/share/some/other/lib.jar]
SUDO_BIN = "gksudo"
# Append your app's jar file into cp!
MAIN_CLASS = "com.andrew.myapp.Main"
# Put your own opts here (-Xmx, -Xms, etc)
JVM_OPTS = "-client" 

###############################################
# Calculating project's root. 1st dir is a root of Ruby project, second is a common root
projroot = File.expand_path(File.dirname(__FILE__) + "/../.." 
java_args = JVM_OPTS
cp = []
# It uses globbing to expand *.jar style stuffs
CLASSPATH.each do |path|
  cp += path.start_with?("/") ? Dir[path] : Dir[File.join(projroot, PROJECT_DIR, path)]
end
java_args += "-classpath " + cp.join(File::PATH_SEPARATOR) + " "
# The heart of our work...
system(SUDO_BIN + " java " + java_args + " " + MAIN_CLASS)


0 commentaires

3
votes

En supposant qu'il s'agisse d'un projet "Java SE" (par opposition à, par exemple, une application Web ou un programme Ruby). Tout d'abord, désactivez la compilée sur Enregistrer sous la compilation des propriétés du projet.

second, ajoutez à build.xml : xxx

Il y a d'autres choses Vous pouvez toucher fin, mais cela devrait être suffisant pour vous aider à démarrer.


1 commentaires

Merci, c'est exactement ce que je voulais! Parfait