脚本在不同系统上有不同的行为

发布于 2025-01-07 18:16:30 字数 431 浏览 1 评论 0原文

我的 netbeans java 项目有默认生成的 ant 脚本,它在我的 Windows 桌面上运行得很好,我得到了带有 libdist 文件夹里面的文件夹。
现在,我在 debian 系统上有相同的文件和文件夹并运行 ant,但 dist 文件夹从不包含 lib 文件夹中的依赖项 jar。

项目中的设置等等都是正确的。

我在 debian 6.0.3 上使用 ant 1.8.0,在 windows xp 上使用 ant 1.8.2。

这是由netbeanshttp://pastebin.com/dk2x8Na1生成的ant脚本。

怎么了?

I have the default generated ant script for my netbeans java project and it works great on my windows desktop, I got my dist folder with the lib folder inside.
Now I have the same files and folders on a debian system and run ant, but the dist folder never contains the dependency jars in the lib folder.

The settings in the project and so on are correct.

I am using ant 1.8.0 with debian 6.0.3 and ant 1.8.2 with windows xp.

Here is the ant script generated by netbeans http://pastebin.com/dk2x8Na1.

What is wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

要走就滚别墨迹 2025-01-14 18:16:30

我发现了“错误”:

我对比了日志文件,发现了问题所在:

-do-jar-with-libraries-pack:
由于未设置属性“do.mkdist”而跳过。

您可以在文件build.xml中找到以下内容:

<condition property="do.mkdist">
    <and>
        <isset property="do.archive"/>
        <isset property="libs.CopyLibs.classpath"/>
        <not>
            <istrue value="${mkdist.disabled}"/>
        </not>
    </and>
</condition>

似乎未设置libs.CopyLibs.classpath。 NetBeans 提供了一个实现,您可以在 java/ant/extra 处找到它。该库名为org-netbeans-modules-java-j2seproject-copylibstask.jar
我在我的 project.properties 中添加了以下条目:

libs.CopyLibs.classpath=tools/org-netbeans-modules-java-j2seproject-copylibstask.jar

之后,一切都可以在 Debian 上正常运行。

I found the "mistake":

I compared the log files and found the problem:

-do-jar-with-libraries-pack:
Skipped because property 'do.mkdist' not set.

You can find in the file build.xml following:

<condition property="do.mkdist">
    <and>
        <isset property="do.archive"/>
        <isset property="libs.CopyLibs.classpath"/>
        <not>
            <istrue value="${mkdist.disabled}"/>
        </not>
    </and>
</condition>

It seems that libs.CopyLibs.classpath isn't set. There is an implementation from NetBeans, which you can find it here java/ant/extra. The lib is called org-netbeans-modules-java-j2seproject-copylibstask.jar.
I added to my project.properties the following entry:

libs.CopyLibs.classpath=tools/org-netbeans-modules-java-j2seproject-copylibstask.jar

After that all works fine with Debian, too.

倾听心声的旋律 2025-01-14 18:16:30

根据我在 Windows 环境上开发然后在 Linux 上部署的经验,有一些可能会出现问题的事情:

  1. 路径的使用:始终宁愿使用 /Temp/application/alpha 而不是
    比 C:\Temp\application\alpha - 正斜杠 / 相当于
    双反斜杠 \ 在 Windows 上并且在 Linux 上兼容
  2. 检查 Linux 上的 Java 版本是否与 Windows Java 版本相同并且也是 32/64。
  3. 确保您的 Linux Java 版本中包含任何第 3 方 jar,例如安全加密升级等。
  4. 您的全局路径设置正确。特别是在运行 cron 作业时。
  5. 尽可能尝试使用 java 环境变量。例如,引用临时文件夹时使用 ${java.io.tmpdir}。

我试图用很少的信息来回答你的问题。

能提供一下你的ant脚本吗?

From my experience of developing on a Windows environment and then deploying on Linux, there are a few things that could be the problem:

  1. The use of paths: Always rather use /Temp/application/alpha rather
    than C:\Temp\application\alpha - A forward slash / is equivalent to
    a double back-slash \ on Windows and is compatible on Linux
  2. Check that the version of Java on Linux is the same and is also 32/64 as your Windows Java version is.
  3. Ensure that any 3rd party jars are included in your Linux Java version e.g. security encryption upgrades etc.
  4. Your global path is correctly set. Especially when running cron jobs.
  5. Try and use the java environment variables where possible. For example when referencing the temp folder use ${java.io.tmpdir}.

I have tried to answer your question with very little info.

Would you be able to provide your ant script?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文