Hi Paulo, it is politically probably not correct but you might checkout https://github.com/zeroturnaround/zt-exec
* currently looking at the source and it looks familiar to me :-) * it is ASL 2.0 * it is available on Maven Central * maybe this could be the starting point for commons-exec2 Cheers, Siegfried Goeschl On 29 Apr 2014, at 22:52, Siegfried Goeschl <[email protected]> wrote: > Hi Paulo, > > to be honest I’m puzzled as well - I think I need to play with your example > to understand the difference of the invocations > > I keep you in the loop :-) > > Cheers, > > Siegfried Goeschl > > PS: I also think that commons-exec2 running on JDK 1.7+ would be a nice pet > project of mine > > On 29 Apr 2014, at 18:25, Paulo Roberto Massa Cereda <[email protected]> > wrote: > >> Hi Siegfried, hey guys! >> >> Now I'm more puzzled after running the following test with ProcessBuilder: >> >> ************************** >> @Test >> public void testProcessBuilder() throws IOException { >> >> ProcessBuilder bibtex = new ProcessBuilder(); >> bibtex.command(new String[]{"bibtex", "file with spaces.aux"}); >> Process process = bibtex.start(); >> >> InputStream inputStream = process.getInputStream(); >> InputStreamReader inputStreamReader = new InputStreamReader(inputStream); >> BufferedReader bufferedReader = new BufferedReader(inputStreamReader); >> String currentLine; >> while ((currentLine = bufferedReader.readLine()) != null) { >> System.out.println(currentLine); >> } >> >> try { >> int exitValue = process.waitFor(); >> System.out.println(exitValue); >> } catch (InterruptedException e) { } >> } >> ************************** >> >> I got the expected execution! vvv >> >> ************************** >> >> ------------------------------------------------------- >> T E S T S >> ------------------------------------------------------- >> Running cereda.tests.ProcessBuilderTest >> This is BibTeX, Version 0.99d (TeX Live 2013) >> The top-level auxiliary file: file with spaces.aux >> The style file: plain.bst >> Database file #1: master.bib >> Warning--I didn't find a database entry for "with:1977" >> (There was 1 warning) >> 0 >> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.61 sec >> >> ************************** >> >> I'm really lost now. And it's still Tuesday, so no excuses for getting a >> beer today. :) >> >> All the best, >> >> Paulo >> >> Em 28-04-2014 15:34, Siegfried Goeschl escreveu: >>> Hi Paulo, >>> >>> I’m also a bit puzzled :-) >>> >>> 1) Can you remove the “.aux” extension when invoking “bibtex”? >>> 2) Please check >>> http://tex.stackexchange.com/questions/112606/how-to-make-space-recognized-in-bib-filename-when-setting-bibliography >>> >>> Cheers, >>> >>> Siegfried Goeschl >>> >>> >>> On 24 Apr 2014, at 15:36, Paulo Roberto Massa Cereda >>> <[email protected]> wrote: >>> >>>> Hello Siegfried, >>>> >>>>> sorry for the next dumb question (but I'm actually quite good at it) >>>> >>>> Don't say such thing, you are helping me a lot with these questions. :) >>>> >>>> There we go: >>>> >>>>> * what is the result of the failed "bibtex" invocation? >>>> >>>> The message prompted is >>>> >>>> ----------------- >>>> I couldn't open file name `"file with spaces.aux".aux' >>>> ----------------- >>>> >>>> And the program returns 1 as exit value. >>>> >>>> If I copy "file with spaces.aux" and rename it to "filewithnospaces.aux", >>>> I get >>>> >>>> ----------------- >>>> This is BibTeX, Version 0.99d (TeX Live 2013) >>>> The top-level auxiliary file: filewithnospaces.aux >>>> The style file: plain.bst >>>> Database file #1: master.bib >>>> Warning--I didn't find a database entry for "with:1977" >>>> (There was 1 warning) >>>> ----------------- >>>> >>>> And the program returns 0 as exit value. >>>> >>>>> * is "bibtex" a native binary or a shell script? >>>> >>>> Native binary. >>>> >>>> paulo@alexandria ~$ file `which bibtex` >>>> /opt/texbin/bibtex: ELF 32-bit LSB executable, Intel 80386, version 1 >>>> (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, >>>> stripped >>>> >>>>> * depending on the error - can you replace the "bibtex" with a shell >>>>> script to dump the current working directory - sometime the things >>>>> are not executing where you expect them (just battled Java-native >>>>> launchers where the current working directory can't be set >>>> >>>> I replaced bibtex with a script that prints $PWD and the provided >>>> arguments. I got >>>> >>>> Current directory ($PWD): >>>> /home/paulo/Projetos/commons-exec-report >>>> >>>> Arguments: >>>> "file with spaces.aux" >>>> Done. >>>> >>>> with 0 as exit value. >>>> >>>> Quite odd, isn't it? :) It's driving me crazy. Well, crazier. :P >>>> >>>> All the best, >>>> >>>> Paulo >>>> >>>> Em 24-04-2014 10:14, Siegfried Goeschl escreveu: >>>>> Hi Pauolo, >>>>> >>>>> sorry for the next dumb question (but I'm actually quite good at it) >>>>> >>>>> * what is the result of the failed "bibtex" invocation? >>>>> >>>>> * is "bibtex" a native binary or a shell script? >>>>> >>>>> * depending on the error - can you replace the "bibtex" with a shell >>>>> script to dump the current working directory - sometime the things are >>>>> not executing where you expect them (just battled Java-native launchers >>>>> where the current working directory can't be set >>>>> >>>>> Cheers, >>>>> >>>>> Siegfried Goeschl >>>>> >>>>> On 24.04.14 15:07, Paulo Roberto Massa Cereda wrote: >>>>>> Hello Siegfried! >>>>>> >>>>>> Wow, thanks for the fast response. :) >>>>>> >>>>>> Deeply sorry, I forgot to mention the environment. I'm running my code >>>>>> under Linux (Fedora 20, Java 1.7.0) and MacOSX (Mavericks, 10.9.2). I >>>>>> was unaware of the .aux thing under Windows, it's good to know about it; >>>>>> TeX tools use .aux files all the time, so it might be interesting to >>>>>> investigate some side effects from it. :) >>>>>> >>>>>> Apparently, the error persists with other tool named makeglossaries that >>>>>> also uses this .aux file. I'm starting to get scared. :) >>>>>> >>>>>> All the best, >>>>>> >>>>>> Paulo >>>>>> >>>>>> Em 24-04-2014 09:50, Siegfried Goeschl escreveu: >>>>>>> Hi Paulo, >>>>>>> >>>>>>> some stupid thought and it might not even be related to your problem >>>>>>> >>>>>>> "aux" is under Windows a reserved and can't be used as file name - see >>>>>>> http://en.wikipedia.org/wiki/Filename - are you running the stuff under >>>>>>> WIndows? >>>>>>> >>>>>>> Is it possible to rename the offending file to something different then >>>>>>> ".aux" >>>>>>> >>>>>>> Cheers, >>>>>>> >>>>>>> Siegfried Goeschl >>>>>>> >>>>>>> On 24.04.14 14:36, Paulo Roberto Massa Cereda wrote: >>>>>>>> Dear friends, >>>>>>>> >>>>>>>> For some time, I was sure issue #54 >>>>>>>> (https://issues.apache.org/jira/browse/EXEC-54) was the culprit of one >>>>>>>> my programs misbehaving. Today, I decided to devote some time in >>>>>>>> understanding what's been happening in my code and apparently issue >>>>>>>> #54 does not appear to be culprit here! >>>>>>>> >>>>>>>> Here's a sample code that might explain what's happening. Note that I >>>>>>>> use two programs here (pdflatex and bibtex, hopefully available from >>>>>>>> any recent TeX distribution), and similar expansions lead to different >>>>>>>> results. Apologies for the long code excerpt. >>>>>>>> >>>>>>>> =============================================================== >>>>>>>> @Test >>>>>>>> public void testCommonsExecExecution() throws IOException, >>>>>>>> InterruptedException { >>>>>>>> String program = "bibtex"; >>>>>>>> String argument = "file with spaces.aux"; >>>>>>>> CommandLine line = new CommandLine(program); >>>>>>>> line.addArgument(argument); >>>>>>>> >>>>>>>> // so far, everything ok >>>>>>>> assertEquals(line.toString(), "[bibtex, \"file with >>>>>>>> spaces.aux\"]"); >>>>>>>> >>>>>>>> DefaultExecuteResultHandler resultHandler = new >>>>>>>> DefaultExecuteResultHandler(); >>>>>>>> ByteArrayOutputStream out = new ByteArrayOutputStream(); >>>>>>>> PumpStreamHandler streamHandler = new PumpStreamHandler(out, >>>>>>>> out); >>>>>>>> >>>>>>>> DefaultExecutor executor = new DefaultExecutor(); >>>>>>>> executor.setStreamHandler(streamHandler); >>>>>>>> executor.execute(line, resultHandler); >>>>>>>> resultHandler.waitFor(); >>>>>>>> >>>>>>>> // bibtex is executed with "file with spaces.aux".aux, >>>>>>>> // which is not what I expected >>>>>>>> assertEquals(out.toString(), "I couldn't open file name >>>>>>>> `\"file with spaces.aux\".aux'\n"); >>>>>>>> >>>>>>>> program = "pdflatex"; >>>>>>>> argument = "file with spaces.tex"; >>>>>>>> >>>>>>>> line = new CommandLine(program); >>>>>>>> line.addArgument(argument); >>>>>>>> >>>>>>>> // so far, everything ok >>>>>>>> assertEquals(line.toString(), "[pdflatex, \"file with >>>>>>>> spaces.tex\"]"); >>>>>>>> >>>>>>>> resultHandler = new DefaultExecuteResultHandler(); >>>>>>>> out = new ByteArrayOutputStream(); >>>>>>>> streamHandler = new PumpStreamHandler(out, out); >>>>>>>> >>>>>>>> executor = new DefaultExecutor(); >>>>>>>> executor.setStreamHandler(streamHandler); >>>>>>>> executor.execute(line, resultHandler); >>>>>>>> resultHandler.waitFor(); >>>>>>>> >>>>>>>> // here, pdflatex works with "file with spaces.tex" >>>>>>>> assertTrue(out.toString().contains("! I can't find file >>>>>>>> `\"file with spaces.tex\"'.")); >>>>>>>> >>>>>>>> } >>>>>>>> =============================================================== >>>>>>>> >>>>>>>> Note that Exec has both >>>>>>>> >>>>>>>> [ bibtex, file with spaces.aux ] >>>>>>>> [ pdflatex, file with spaces.tex ] >>>>>>>> >>>>>>>> parsed correctly, but only the latter execution is properly done. Now >>>>>>>> I'm not sure if it's even Exec's fault, but what strikes me is the >>>>>>>> fact that with pdflatex, the execution works. >>>>>>>> >>>>>>>> Maybe I'm missing something obvious. Could you guys shed some light >>>>>>>> into this problem? >>>>>>>> >>>>>>>> All the best, >>>>>>>> >>>>>>>> Paulo >>>>>>>> >>>>>>>> --------------------------------------------------------------------- >>>>>>>> To unsubscribe, e-mail: [email protected] >>>>>>>> For additional commands, e-mail: [email protected] >>>>>>>> >>>>>>> >>>>> >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
